问题标签 [playframework-2.4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
534 浏览

hibernate - Play Framework 2.4 中的 Database Evolution 不起作用吗?

在 play-java-intro 模板上,它会PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement因为PERSON找不到表而抛出。

例外:

这是 play-intro-java 模板(Play Framework 2.4)中的默认 Person 模型类:

Play 应该首先运行 Database Evolution,因此PERSON将首先创建表。每条指令libraryDependencies += evolutions在 build.sbt 中添加了一行,但没有运气。在 Play 2.3.9 中没有遇到过这个问题。

Play 2.4 使用 JPA 进行模型/持久性,其中 Play 2.3 和以前的版本使用 Ebean ORM。

0 投票
1 回答
333 浏览

forms - In Play 2.4.0 如何在嵌套表单的多字段约束中命名字段?

这是对复杂表单问题的后续处理:How to get child record (case class) ID in Play Framework (2.4.0) using Forms

现在,由于约束在apply方法之后,我们可以转换case class并访问它的所有字段,因此我们可以编写一个使用来自任何和所有字段的数据的验证。不确定我是否真的对此感到满意 - 为什么在测试之前转换数据 - 为什么我们不能简单地使用手头的数据进行验证过程?case class如果它本身由于错误的数据或内部验证过程而在创建过程中出现任何异常,这也会带来一个问题,但这将是一个足够小的极端情况来构建一个变通方案——case class仅用于验证的自定义。

很抱歉伪代码,但希望您对验证过程中发生的事情有基本的了解。我们获取几个字段并处理它们包含的数据以进行验证判断调用。

事情是这样的。

在 HTML 输出中,嵌套类字段必须引用为:listOfEmails[x].IDlistOfEmails[x].email,以便 Play 框架在POST- https://www.playframework.com/documentation/2.4.0/ScalaForms上正确捕获它们

但是,约束过程listOfEmails[x]作为错误键的字段名称返回,因此它不会出现在 html 模板上,因为该键不匹配任何内容。

那么如何重命名错误字段键(假设这是正确的答案)或者一个更好的问题是如何使这个过程以端到端的方式进行?

是的,我们可以使用全局错误,但是在一个大而复杂的表单上,我们希望让错误尽可能接近解决方案,以便用户的眼球能够快速识别并继续前进。

0 投票
1 回答
618 浏览

scala - 如何在 Play 2.4 和 `InjectedRoutesGenerator` 中使用 `controllers.Default.redirect`

如果我尝试在我的文件中使用controllers.Default.redirect(to = "/foo/bar")并在我的routes文件中routesGenerator := InjectedRoutesGenerator启用build.sbt,我会收到编译错误

有了 Play 2.4 中这个新的注入路由功能,是否还有一种方法可以使用静态对象中定义的处理程序?

0 投票
2 回答
569 浏览

scala - 播放 2.4 scala 我在获取代码中隐含的消息时遇到问题

我正在尝试将我的应用程序从 2.3 迁移到 2.4。在我们的代码库中,我们广泛使用了 Messages,因此任何删除它的方法都会有所帮助。目前我们的代码是这样的

编译此代码时,我收到错误:(31、84)播放 2 编译器:找不到参数消息的隐式值:play.api.i18n.Messages 编译时错误消息。

请帮助解决此问题,欢迎以更好的方式改进此类问题的任何建议。

0 投票
1 回答
1351 浏览

scala - Play Framework 2.4 @routes.WebJarAssets.at IntelliJ IDEA 14.1.3 中的编译错误

我正在尝试在 Intellij IDEA 14.1.3 中将 WebJars 与 Play Framework 2.4.0 一起使用。

我有 SBT 1.7.0 插件和 Scala 1.5.2 插件(带有项目 Scala 版本 2.11.6)。

当我从终端($ activator run$ sbt run)运行我的应用程序时,我的应用程序运行良好,但是在我的模板(参见下文)上的 #at() 方法上,我的模板上有编译错误并且没有自动完成功能@routes.WebJarAssets.at(..) (而不是在@routes.Assets.at):

在此处输入图像描述

有我的路由配置文件:

有关信息,我尝试在删除我的 .idea 文件夹后从 SBT 内置构建器重新导入项目,但这没有用。

有什么解决办法吗?

0 投票
1 回答
1007 浏览

scala - 使用 Scala 播放 Framework 2.4.0 和 I18n

我有一个使用 Play Framework 2.3.8 的项目,我正在迁移到 Play Framework 2.4,但 I18n 有问题。

现在我有这样的视图代码:

语言环境是:

我会在不使用隐式语言的情况下维护这个结构,可能吗?

在某些情况下,我在同一页面中使用不同的语言,在这种情况下,隐式语言既困难又无聊。

0 投票
3 回答
2537 浏览

java - 配置取决于启动模式

Play 可以在开发模式 (via run)、生产模式 (via start) 或测试模式下启动。有没有办法conf/application.conf根据启动的模式提供不同的配置文件()?

0 投票
1 回答
298 浏览

json - 在 Scala 中创建具有隐式和类型的通用可重用函数

我有一段代码可以在所有地方复制。这段代码(大约 10 行)处理入站操作,验证它们,处理 JSON 序列化,并调用内部函数,准备结果。

我知道可以将其简化为对通用辅助函数的单行调用,但由于隐含、类型以及我对 Scala 语法的不了解的知识,我一直遇到问题。

代码(两个单独的示例,以演示它们的不同之处):

正如你所看到的——除了请求类型(AuthenticationRequestvs RegistrationRequest)和响应类型(AuthenticationResponsevs RegistrationResponse)之外,非常非常几乎相同。否则它是样板文件。

应该有一种方法可以将其提炼成以下内容:

我尝试定义 a from[I,O](request: I, response: O),但这导致了一堆问题(没有关于 JSON 反序列化的信息等)。所以,我试图通过创建几个特征来抽象一下,GPRequest并且GPResult

然后尝试定义一个函数,例如:

但这会导致各种形式的问题。我在下面粘贴了编译器错误,但一般要点是:

  1. JSON 无法弄清楚如何处理隐式序列化(格式/读取/写入)。找不到applyunapply的实际类型。
  2. GPRequest、GPResponse 上的类型参数错误。
  3. 无法将请求声明为implicit(我的 Scala 语法可能在这里搞砸了)。

而且情况会变得更糟。

底线问题:有没有人有一个干净的设计模式来实现我在这里寻找的东西?(或者,了解 Play 和 Scala 的人可以就从这里去哪里提供一些指导)。这看起来真的应该是可能的,但我一直在想下一步。

对于无畏的人,以下是错误:

0 投票
1 回答
466 浏览

scala - Play 2.4.0 功能测试中的 Specs2/Guice 问题

我遇到了一个问题,依赖项显然在测试之间流血,这导致大多数测试失败。在每种情况下,调试都会显示在测试类中创建的第一个应用程序用于所有测试,这会导致失败。

我试过添加isolatedsequential但这没有任何效果。

我是在做一些非常愚蠢或非常愚蠢的事情吗?

例如,这里的SubjectNotPresentTest.scala

GuiceApplicationBuilder 用于父类,用于创建应用程序进行测试。

您可以在https://travis-ci.org/schaloner/deadbolt-2-scala/builds/66369307#L805查看失败示例

所有测试都可以在https://github.com/schaloner/deadbolt-2-scala/tree/master/code/test/be/objectify/deadbolt/scala/views找到

谢谢,史蒂夫

0 投票
0 回答
232 浏览

database - EBean4 加入 PlayFramework 中的非 PK 字段支持

我正在使用 PlayFramework 2.4 通过 EBean 4 连接到 DB。我面临一个问题,我想加入 2 个具有非主键的表,如下所示,并使用 referencedColumnName 将 ColA 与 ColB 映射。

但它返回以下错误:

我发现 EBean4 文档没有谈论 referencedColumnName JPA 符号 https://ebean-orm.github.io/docs#relationships

在 EBean2 中,它似乎将其报告为错误并标记为已修复 http://www.avaje.org/bugdetail-263.html

所以我想问一下我的代码有问题吗?还是EBean根本不支持非PK加入?

谢谢!