问题标签 [playframework-2.5]

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 投票
2 回答
875 浏览

scala - 性能灵活查询一对多

我正在使用 play 2.5 和 slick 3.1.1,我正在尝试为一对多和一对一的多个关系构建最佳查询。我有一个这样的数据库模型:

对于数据输出:

我创建了两个查询来通过 id 获取住宿:

经过测试,多个查询比连接快 5 倍。如何创建更优化的连接查询?

=== 更新 ===

我现在正在使用数据在 postgresql 9.3 上进行测试:

这里是多次运行的结果(毫秒):

== 更新 2 ==

添加索引后它会更好,但仍然 multi 更快:

我做了一个测试:

这里是 2 次运行的结果:

0 投票
1 回答
623 浏览

playframework - Play Framework 2.5,到 Web 套接字的路由无法编译

我正在尝试将我的 WebSocket 控制器代码迁移到 Play 2.5 并按照ScalaWebSockets的说明进行操作。我的路由配置出现编译器错误。我的 WebSocket 控制器代码如下

打算支持 WebSocket 的各个控制器应该对此进行扩展。这种模式在 Play 2.4 中运行良好,并且这个控制器代码也在编译。但是我的路由器配置无法编译并出现以下错误

路线:56:方法应用的参数不足:(请求:play.api.mvc.RequestHeader)scala.concurrent.Future[Either[play.api.mvc.Result,akka.stream.scaladsl.Flow[play.api. http.websocket.Message, play.api.http.websocket.Message, _]]] 在 trait WebSocket 中。未指定值参数请求。

扩展 IntegrationMonitorProvider 的控制器如下

感谢您对此的任何帮助。

0 投票
2 回答
1568 浏览

scala - Play Framework Twirl 模板 html 元素属性

我正在使用 Play Framework 2.5,处理 scala.html 和 Twirl 模板。有人可以帮我理解如何将跨度上的“密钥”设置为我的“有效 ID”吗?

我似乎无法让它在 html 元素属性中工作。我不确定使用什么语法将我的 val id 写入我的 span 键。

谢谢你的帮助。

0 投票
1 回答
635 浏览

java - Play Framework 2.5:视图模型绑定请求返回'null'

我尝试使用 bindFromRequest() 将视图与模型绑定,但视图和模型未绑定,模型给出 null 值。

这是我的控制器

这是模型 Login.java

这是登录视图 login.html :

0 投票
2 回答
1648 浏览

scala - Play Framework 2.5.x Scala Slick 实现风格

我有一个哲学问题。

几年来,我一直是 Play Framework for Java 的非常满意的用户。现在我正在尝试深入研究 Scala 和函数式编程。在基于 Java 的游戏中,我一直在使用 Ebean,因此根据 Play 文档,我扩展了 Ebean 模型类并实现了自己的模型。在每个模型中,我声明了一个 Finder 类型的静态变量,以便调用查询。所有这些都记录在案并且运行良好。

然而,在基于 Scala 的 Play (v2.5.x) 中,没有太多关于持久层的文档。好的,我知道 Play Slick 有一个推荐,因为它使用了函数式编程的思想。我对此感到有点兴奋,但几乎没有关于如何使用它的文档。我找到了如何启用 Slick、如何配置数据源和数据库服务器以及如何将数据库注入控制器的方法。还有一个关于如何在 db 上调用简单查询的非常小的示例。

问题是:如何实际使用 Slick?我研究了一些第三方教程和博客,似乎有多种方法。

1)如何定义模型?看来我应该使用案例类来定义模型本身。比我应该定义类扩展表来定义列及其属性?

2) 项目结构是什么?我应该为每个模型创建新的 scala 文件吗?按照 Java 的约定,我应该,但有时我会在一个 scala 文件中看到所有模型(如 Python Django 中的)。我认为单独的文件更好。

3) 我应该创建 DAO 来操作模型吗?或者我应该创建类似服务的东西吗?代码可能非常相同。我要问的是项目的结构。

提前感谢您的任何想法

0 投票
1 回答
1817 浏览

scala - Play[2.5.x] 自定义正文解析器以获取原始正文并将其与请求捆绑

我有一个带有 hmac 标头的发布请求,我需要匹配正文。此标头是使用请求的原始正文创建的,我无法更改它。请求的内容类型是 application/json。目前似乎无法访问请求的原始正文以及请求的 json 编码正文,因此我正在尝试创建自定义正文解析器和操作以将原始正文和原始请求捆绑在一起并通过他们上。

我正在尝试复制这些人的实现https://victorops.com/blog/capturing-raw-requests-play/但它是预播放 2.5,因此使用 iteratees 而不是 akka 流。

这是我到目前为止所拥有的:

BodyParser 和案例类

这不会编译错误

现在我可以看到它试图告诉我什么,并且我明白我只是不知道如何解决它。我想解决方案在链接中 victorops 示例的第 15 行和第 24 行之间,但我不知道如何将这些行转换为 2.5 版本

重要的自定义操作

0 投票
1 回答
4449 浏览

java - Play Framework 2.5.1 路由和依赖注入(Java)

我的“路线”文件中有这个:

在我的 ACCoutsController.java 中:

这段代码编译得很好,但是在运行时我得到了这样的错误:

ProvisionException: Unable to provision,见以下错误:1) Error injection constructors, java.lang.NullPointerException at controllers.AccountsController.(AccountsController.java:11)
在为 router.Routes.(Routes.scala:28) 的参数 1 定位 controllers.AccountsController 的同时定位 router.Routes 在定位 play.api.inject.RoutesProvider 的同时为 play.api 的参数 0 定位 play.api.routing.Router .http.JavaCompatibleHttpRequestHandler.(HttpRequestHandler.scala:200) 同时在 play.api.DefaultApplication.(Application.scala:221) 中找到 play.api.http.HttpRequestHandler 的参数 4 时找到 play.api.http.JavaCompatibleHttpRequestHandler。 api.DefaultApplication.class(Application.scala:221) 同时定位 play.api.DefaultApplication 同时定位 play.api.Application 1 错误

我可以通过将 @ 添加到路由文件来解决此问题:

但我不确定为什么我需要这样做,以及如何避免'@'。请给一些建议。

0 投票
1 回答
647 浏览

testing - play 2.5 渲染视图测试,获取flash消息

这里简单的播放渲染视图测试。在视图模板中,我尝试通过 flash.get() 访问会话信息。但是测试失败并显示消息There is no HTTP Context available from here.如何在 junit 测试上下文中向测试的应用程序添加假会话数据?

}

0 投票
1 回答
561 浏览

playframework - 播放框架 2.5.1 环境变量和属性替换

我想在 Docker 中设置一个 Play 应用程序,并希望使用属性和环境变量传入数据库连接参数。

下面的方法是一种有效的方法吗?

我想传入以下环境变量:

  1. MONGO_HOST
  2. MONGO_PORT
  3. MONGO_USER
  4. MONGO_PASS
  5. MONGO_DB

并希望 HOCON 属性替换来构造最终的 uri,在代码中我将作为 mongodb.uri 和 admindb.uri 访问它以获得最终值。

0 投票
3 回答
3375 浏览

java - 使用 Play/Java-framework-2.5 配置 Swagger

我正在尝试使用我的 Play-2.5 项目配置Swagger 。

我按照本教程进行了操作,但仅适用于旧版本的 Play,不适用于 Play-2.5。由于项目已经迁移到 Play-2.5,我们不得不删除 swagger 配置。

首先,问题似乎在于 Play-2.5 中的静态控制器与非静态控制器,但我最终证明自己错了。我正面临这个错误

如果有人知道使用 Play-2.5 for Java进行 Swagger 配置的任何链接,请指导。

PS:有适用于 Scala 而不是java的教程。