Tag: playframework 2.0

在Play中处理字段集! 框架2.3(Java)

我想弄清楚怎么玩! 处理使用多个具有相同名称的字段的表单。 例如,看一下这个表单片段: Select product… @for(product<-Product.findAll()) { @product.name } Member price Public price Add line… 我使用括号表示法,因为用户可以通过单击“添加行…”按钮添加任意数量的订单行。 单击按钮时,JavaScript函数克隆 并将其附加到下方。 基本上,提交的表单包含多个订单行。 现在我想要做的是收集控制器中的所有数据,但我无法弄清楚如何做到这一点。 有人建议我在控制器中做这样的事情: public static Result createOrder(String[] quantity, String[] productId, String[] price) { for(int i=0; i<quantity.length; i++){ … } for(int i=0; i<productId.length; i++){ … } for(int i=0; i<price.length; i++){ … } } 但问题是它需要我为Array[String]类型实现自定义隐式QueryStringBindable 。 对于这样一个基本function来说,这不是太多了吗? 所以我的问题是如何处理具有可变数量的具有相同名称的参数的表单? 比如,如何实现购物车,您可以在其中创建多个订单行(以完全随机的顺序),然​​后提交它们以创建订单? […]

Java制作了一个单独的注释,它结合了其他注释

使用Play Framework 2.2,制作RESTfull API。 在我正在使用的模型中,我想输出(Json with Jackson)只有相关对象的Id,而不是整个对象。 我发现如何做到这一点,如下: @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = “id”) @JsonIdentityReference(alwaysAsId = true) @JsonIgnore public Object myObject; Json输出将包含JsonNode“myObjectId:1”。 例如。 IdentityInfo和IdentityReference会处理这个问题。 问题是,无论我想要什么,我都必须粘贴这3行,以及需要为某个字段提供的任何其他注释。 这变得太大了,我正在尝试创建一个自定义注释来完成所有这些事情。 这有可能,怎么样? 我可以阅读一个链接,我可以阅读它或一个例子。

在Play框架中建模子包

我的models包中的类列表变得非常大,我想将一些类重构为它们自己的子包。 例如,所有表单都进入models.forms ,所有用户都进入models.users等。 但是,如果我现在声明一个采用表单的模板: @(myForm : Form[MyForm]) 这给了我一个not found: Type MyForm -error。 我试过导入这个类: @import models.form.MyForm 但这没有任何区别。

如何在2.1 RC2中包含本机库(JNI)?

我正在使用Play Framework 2.1 RC2来构建一个使用TFS Java SDK的应用程序。 TFS APIs需要包含一组本机dll(例如native_auth.dll )。 如何在应用程序运行时使本机库可用? 我在哪里可以指定要包含的本机dll? 更新:我尝试了static块System.load(“full path”)并使用app.classloader().loadClass(“NativeUtils.class”);加载它app.classloader().loadClass(“NativeUtils.class”); ,但我仍然得到例外: java.lang.UnsatisfiedLinkError: com.microsoft.tfs.jni.internal.platformmisc.NativePlatformMisc.nativeGetEnvironmentVariable(Ljava/lang/String;)Ljava/lang/String; at com.microsoft.tfs.jni.internal.platformmisc.NativePlatformMisc.nativeGetEnvironmentVariable(Native Method) at com.microsoft.tfs.jni.internal.platformmisc.NativePlatformMisc.getEnvironmentVariable(NativePlatformMisc.java:134) at com.microsoft.tfs.jni.PlatformMiscUtils.getEnvironmentVariable(PlatformMiscUtils.java:52) at com.microsoft.tfs.core.config.httpclient.DefaultHTTPClientFactory.shouldAcceptUntrustedCertificates(DefaultHTTPClientFactory.java:288) at com.microsoft.tfs.core.config.httpclient.DefaultHTTPClientFactory.configureClientParams(DefaultHTTPClientFactory.java:324) at com.microsoft.tfs.core.config.httpclient.DefaultHTTPClientFactory.newHTTPClient(DefaultHTTPClientFactory.java:137) at com.microsoft.tfs.core.TFSConnection.getHTTPClient(TFSConnection.java:1041) at com.microsoft.tfs.core.TFSConnection.getWebService(TFSConnection.java:874) at com.microsoft.tfs.core.config.client.DefaultClientFactory$9.newClient(DefaultClientFactory.java:265) at com.microsoft.tfs.core.config.client.DefaultClientFactory.newClient(DefaultClientFactory.java:90) at com.microsoft.tfs.core.TFSConnection.getClient(TFSConnection.java:1470) at com.microsoft.tfs.core.TFSTeamProjectCollection.getWorkItemClient(TFSTeamProjectCollection.java:370) 提前感谢您的投入!

如何配置eclipse以保持这种代码格式?

以下代码来自playframework-2.0的示例: /** * Display the dashboard. */ public static Result index() { return ok( dashboard.render( Project.findInvolving(request().username()), Task.findTodoInvolving(request().username()), User.find.byId(request().username()) ) ); } 它看起来不错,但是当我使用eclipse的代码格式时,它变成: /** * Display the dashboard. */ public static Result index() { return ok(dashboard.render( Project.findInvolving(request().username()), Task.findTodoInvolving(request().username()), User.find.byId(request().username()) )); } 如何配置eclipse以保持第一格式样式? 我尝试了很多,但没有效果。

Akka调度程序()每次重复都会延迟

我有一个简单的调度程序,每1秒重复一次任务: Cancellable task = Akka.system().scheduler().schedule( Duration.create(0, TimeUnit.MILLISECONDS), Duration.create(1, TimeUnit.SECONDS), actor, new TickMsg(“Tick”, 0, 120) ); 不幸的是,每个传递都是迟到的ticker-duration收报器ticker-duration所以最终演员在100毫秒后正好收到TickMsg – 好的,这在文档中描述并且我很清楚: 它不会在确切的时间执行任务,但是在每个滴答声中,它将运行过期的所有内容。 我无法理解的是为什么每个传球都迟到了,事实上这意味着每次传球而不是1000毫秒需要1100毫秒。 在10次通过后的结果,我们有1秒的延迟,1分钟后6秒,1小时后6分钟等… 一些解决方案是将重复持续时间设置得稍短一些,因此在需要的时间点不会迟到,对于一个有效的示例,然后调度程序会根据需要重复执行任务: Cancellable task = Akka.system().scheduler().schedule( Duration.create(0, TimeUnit.MILLISECONDS), Duration.create((1000 – tickerDuration/2), TimeUnit.MILLISECONDS), actor, new TickMsg(“Tick”, 0, 120) ); 不幸的是,这种方式有点不舒服,容易忘记,有没有其他方法可以每隔x秒(或其他TimeUnit )重复任务而不将其转换为毫秒和缩短?

附加调试器(使用eclipse)播放框架失败

我正在使用Scala在eclipse IDE的Play框架上编写一个Web。 我正在尝试调试我的应用程序,但命中调试附加失败。 我尝试使用Java而不是Scala进行切换,但是我得到了同样的错误。 这就是我的工作。 创建一个项目并运行play clean compile 运行play debug run 在Eclipse中,设置’debug configration’ – >远程java应用程序 – > host:localhost,port:9999和common:debug 在浏览器中键入URL并输入:localhost:9999。 然后在play framework命令行中出现以下故障:Debugger无法附加:握手失败 – 收到>GET / HTTP/1.1JDWP-Handshake< 知道什么是错的吗?

IntelliJ Ultimate无法在Play 2.3(Java)项目测试中找到路由

虽然我的测试运行得很好,IntelliJ抱怨它找不到路由对象,但代码自动完成无法工作。 我查看了整个文档,这应该可行。 这是IntelliJ报告的内容 有关我的项目配置可能出错的任何想法?

在Play 2 Framework上配置QueryDSL

我尝试在Play Framework中配置QueryDSL (使用Java),但没有成功。 我在谷歌搜索过类似的问题,这就是我发现的: 1. QueryDSL和Play 。 但这篇建立与Lombok等效的post和解决方案对我来说并不适用。 2. 模拟MAVEN过程 。 这是我真正需要将它应用于其他类似模块,但没有显示如何的示例。 3. 配置多个模块 。 在这种情况下包括几个模块,有点混乱。 那么,我如何在Play中配置QueryDSL? 任何人都可以提供一个如何做的例子? 提前致谢。

用于在Java Play中测试的HTTP上下文! 2.0.2

我们正在尝试为视图编写测试,但其中一些需要会话变量才能正确呈现。 这是标准测试的样子: @Test public void indexTest() { running(fakeApplication(), new Runnable() { public void run() { Content html = views.html.index.render(loginForm); assertThat(contentType(html)).isEqualTo(“text/html”); assertThat(contentAsString(html)).contains(“log in”); } }); } loginForm是我们在测试类中声明的模拟表单。 但是,当我们尝试运行此测试时,我们会收到以下错误: ‘这里没有可用的HTTP上下文’ 我们尝试使用testServer并尝试从请求到该服务器获取http上下文,但无济于事。 谢谢 :-) 编辑 @nico_ekito 这是我的loginForm周围的代码: Form loginForm = Controller.form(Login.class); 但是,我认为问题在于被调用的控制器,因为视图不使用任何会话属性。 然而,authenticate()方法(在控制器中,我相信当表单提交到视图时)会使用会话。