问题标签 [playframework]
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.
java - 使用 Play 框架的 EC2 连接到 RDS
我有一个使用 Play 框架构建的小型站点,我试图在 EC2 服务器上针对 Amazon RDS 实例运行该站点。我可以在我的机器上针对 RDS 实例运行该应用程序,并且一切正常。但是当我将它部署到我的 EC2 服务器时,它会收到以下错误:
我的第一个想法是它是某种安全设置,但我有一个基于 Spring 的应用程序在同一 EC2 服务器上的 Tomcat 中运行,使用相同的用户名和密码连接到同一个 RDS 实例,它工作得很好。只有 Play 应用存在连接问题。
我似乎无法对为什么会发生这种情况提出任何解释,或者关于如何解决它的想法。
以前有人见过这样的事情吗?
hibernate - 获取相关对象的 ID 而不从数据库中获取它(Play 框架)
假设我有这两个模型:
我有一个 City 对象,想知道相关国家的 ID。我可以通过这样做从数据库中获取,city.getCountry().getId()
但这似乎非常浪费。我怎样才能得到 ID(存储在数据库表中country_id
)?
session - playframework 中的对象会话
如何为每个用户会话存储实例对象?
我有一门课来模拟一个复杂的算法。该算法旨在逐步运行。我需要为每个用户实例化这个类的对象。每个用户都应该能够逐步推进他们的实例。
java - 如何为播放框架编写自定义检查/验证
我尝试为play-framework编写检查并看到两种不同的可能性。我描述了两者并想知道我的理解是否正确(所以它更像是一个教程而不是一个问题,特别是因为我没有得到任何我错过了什么的回应)。那么存在哪些可能性。
- 简单的方法:扩展类
Check
:
优点:更容易写,更容易阅读
缺点:你不能参数化检查,你只能定义消息。 - 高级方法:基于 OVal 编写检查
AbstractAnnotationCheck
。
优点:您可以对检查进行参数化,并且使用注释更简单
缺点:有点复杂。
在我们查看实现之前,我想解释一下这些消息。您始终可以直接设置消息或使用键在消息属性中引用消息。最后一种是更清洁和推荐的方式。每个验证至少有 1 个参数:无效属性的名称。因此,验证或检查特定参数始终以%i$s
i>1 为参考。消息字符串的格式应遵循Formatter的规则,但我不确定是否支持所有功能。据我所知,仅支持 %s、%d 和 %f 与定位。所以%[argument_index$][flags]conversion
转换只能是s,d或f。
让我们看两个例子: 我在模块中用于乐观锁定的简单方法:
您将此检查与注释一起使用@CheckWith(value=OptimisticLockingCheck.class, message="optimisticLocking.modelHasChanged")
因此,让我们仔细看看它是如何工作的。我们唯一要做的就是扩展类 play.data.validation.Check 并覆盖 isSatisfied 方法。在那里你得到你的模型和属性的值。您所要做的就是在一切正常时返回 true,否则返回 false。在我们的例子中,我们希望将当前 url 设置为参数。这可以通过调用 setMessage() 轻松完成。我们给出在消息属性和参数中定义的消息或消息键。请记住,我们只给出 1 个参数,但用 %2$s 表示,因为第一个参数始终是属性的名称。
现在是基于 Range-check 的复杂方式:首先我们需要定义一个 Annotation
然后检查
好的,我认为注释不必解释。让我们看看支票。在这种情况下,它是 extends net.sf.oval.configuration.annotation.AbstractAnnotationCheck
。我们必须编写一个配置方法,我们可以在其中获取注释并可以复制参数。然后我们必须定义我们的检查。这类似于其他检查的实施。所以我们只写我们的条件并返回真或假,除了一个特殊的行!如果我们使用参数化消息,我们必须调用requireMessageVariablesRecreation();
我们的方法。至少我们必须重写方法createMessageVariables
。在这里,我们必须了解一点游戏知识(所有其他的东西都在这里描述)。您将消息放入带有键和值的映射中,但 play 只接受值(请参阅ValidCheck.java
在框架代码中)。所以它会被位置引用。这就是我更改RangeCheck
usingTreeMap
而不是HashMap
. 此外,我让键从它们可以引用的索引开始。
所以我希望这可以更清楚地说明如何编写自定义验证/检查。我希望描述是正确的。因此问题是我的理解正确吗?
hibernate - javax.persistence/hibernate 里面玩
我是hibernate和java的新手,我正在尝试在playframework中定义一个简单的用户->组->权限模型,我希望在数据库级别强制执行删除级联规则,我不想让orm关心级联(类似于 python-sqlalchemy 被动删除),这是我的模型:
用户型号:
团体型号:
权限模型:
GroupPermission 模型:
用户组模型:
这会在 postgres 中生成以下 sql:
如您所见,未创建 tabe auth_user 中的用户名字段上的索引,表 user_groups 中的约束是重复的,我有 ON DELETE CASCADE 和 ON DELETE NO ACTION,我只想要表 group_permissions 中的级联版本未创建级联规则,
怎么了?
谢谢尼古拉
java - 播放框架 renderJSON 问题
我是 Play Framework 的新手,在渲染 JSON 对象时遇到了问题。
这只显示[[{},{}],[{},{}],[{},{}]]
......我做错了什么?我找不到任何可靠的文档。我尝试为 配置路由Application.LoginFail(format:'json')
,但这什么也没做。
google-app-engine - 如何使用 Play Framework 和 Google App Engine 创建 PDF?
我需要使用 Play Framework 和 Google App Engine 创建 PDF。有谁知道怎么做?
java - 使用播放框架在休眠中绑定多个值
我正在尝试在 Play 框架中构建查询,我有
在我将 :school 与 List 与一个元素绑定后,它会返回结果,但如果我将 List 与多个元素绑定,则不会发生任何事情。
其实我需要类似的东西
候选人和学校之间的关系在链接表中。
有没有办法绑定多个值?
internet-explorer - 使用不同浏览器在 playframework 中上传文件
我正在使用 playframework 来构建一个网站。而且我还使用了一个名为xheditor的富编辑器。
Xheditor 支持 ajax-fileuploading,它需要服务器端有一个动作,它接受包含上传文件的“filedata”参数。
所以我写了一个上传动作:
它在 IE6 中运行良好,文件数据不为空并且包含正确的数据。但是,如果我使用 chrome 或 firefox,则文件数据为空!
我用firebug来监控firebug提交了什么,发现它提交了这样一个header:
我认为 play 没有正确处理这种情况,所以参数“filedata”为空。
为了使用 chrome 和 firefox,我修改了该操作:
这适用于 IE6、chrome 和 firefox,但前提是上传文件非常小。例如小于 4K。如果稍微大一点,比如12K,“IOUtils.copy”方法会报“Read Error!”,甚至下面的代码也会报这样的错误:
playframework - 如何影响播放控制器中的重定向行为?
如果您从控制器的公共方法调用,则在播放中您始终遵循Redirect-After-Post-Pattern 。在大多数情况下,这是一个很好的行为,但有时它可能是令人讨厌的。所以我试图找出它在 play 1.1 中是如何工作的!:基本是一些字节码增强,这是在play.classloading.enhancers.ControllersEnhancer
. 在那里您可以发现仍然存在一些默认行为的例外情况:
- 如果您的方法由 package 中的注释进行注释
play.mvc
,例如 Before-annotation。 - 您使用 -Annotation 注释您的操作
ByPass
,此 Annotation 必须是内部类,因此名称 endsWith$ByPass
。
如果您总是想抑制重定向,这两种解决方案都很好。但是,如果您只想在特殊情况下这样做呢?然后就可以调用了ControllerInstrumentation.initActionCall()
。
我没有找到关于它的描述,我只是分析代码。那么我的结论是正确的还是有任何缺点?