Tag: playframework

如何在Play框架unit testing中加载不同的插件?

我有不同的插件实现Plugin接口。 现在我把它们硬编码在play.plugins中,如下所示: 100:test.A 200:test.B 但是在我的unit testing中,我不希望一次加载它们。 换句话说,在测试AI中只想加载插件A而在测试B中只加载B. 而不是手动更改配置文件,有没有办法以编程方式更改它? 我fakeApplication()调用fakeApplication()时,默认情况下会加载所有插件。

Play Framework多租户filter

我正在尝试使用Play Framework 2.2构建一个多租户应用程序并遇到了问题。 我想在全局onRouteRequest (或Java中的onRequest )中设置一个会话密钥,用于标识用户请求的域的站点ID。 在几十个其他框架中,这种类型的东西是无痛的(例如Django),但我知道Play中的会话对象显然是不可变的。 所以,现在,我有这样的事情: override def onRouteRequest(request: RequestHeader): Option[Handler] = { if (request.session.get(“site”).isEmpty){ val id = models.Site.getSiteUIDFromURL(request.host.toLowerCase()).toString() if (!id.isEmpty){ //what goes here to set the session? }else{ //not found – redirect to a general notFound page } } super.onRouteRequest(request) } 而且,虽然它不是使用数据库查找的最有效方式,但它现在可用于测试。 我需要能够在全局设置会话密钥,但我完全不知道如何做到这一点。 如果有更好的方法,我全都耳朵(也许包裹我的控制器?)。 我对Java或Scala中的解决方案示例持开放态度。

如何知道Option ]]是否包含密钥?

我想知道request.body.asFormUrlEncoded包含deviceId 。 val formValues=request.body.asFormUrlEncoded val number = formValues.get(“mobile”).head var deviceId =”deviceIdNotFound” if(condtion) //thats the problem deviceId= formValues.get(“deviceId”).head 对于Option[Map[String,Seq[String]]]有任何conatins或任何其他函数的方法吗?

doLayout和’Java Play!’中的模板包含有什么区别?

使用doLayout 扩展时 ,您只能拥有一个子模板,但可以include多个子模板。 有什么区别,最佳做法是什么?

Play Framework – 向classpath添加新目录

我希望能够有一个单独的目录,其中代表插件的jar文件可以添加到Play 2.0项目中。 Jar文件通常保存在Play中的/ lib目录下。 我想将我的jar分隔在名为/ plugins的目录中 之前曾问过这个问题,但建议只使用/ lib目录。 将其他java文件添加到playframework类路径 如果不手动更改Play生成的“eclipsified”文件,是否无法执行此操作?

使用JsonView将POJO转换为JsonNode

我正在编写一个典型的Play Framework应用程序,我希望使用Jackson从Controller的方法返回JsonNode。 这就是我现在正在做的事情: public static Result foo() { MyPojoType myPojo = new myPojo(); String tmp = new ObjectMapper().writerWithView(JSONViews.Public.class).writeValueAsString(myPojo); JsonNode jsonNode = Json.parse(tmp); return ok(jsonNode); } 是否可以避免“String tmp”副本并使用视图直接从MyPojoType转换为JsonNode? 也许我可以使用ObjectMapper.valueToTree,但我不知道如何为它指定一个JSonView。

部署播放! 应用程序作为可执行jar

是否可以捆绑游戏! Web应用程序到可执行jar而不是战争? 它可以只在某个端口的localhost上运行,就像使用“play run”命令一样吗? (无需安装游戏系统)

如何从playframework中的超类inheritance模型

我试图了解inheritance如何发挥作用! 但尚未成功。 所以,我有这样的超类: @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) abstract class SuperClass extends Model { @Id @GeneratedValue(strategy = GenerationType.TABLE, generator = “SEQ_TABLE”) @TableGenerator(name = “SEQ_TABLE”) Long id; int testVal; } 和2个inheritance的类: @Entity public class Sub extends SuperClass { String name; @Override public String toString() { return name; } } @Entity public class Sub1 extends SuperClass { String name; […]

玩框架。 无需编译

我被介绍到Play框架,我发现它的一个惊人的事情是没有必要编译项目。 您只需保存已编辑的文件并重新加载网页即可。 我被告知Java源代码被编译为字节码然后用JIT编译器编译,那么Play框架内部的魔力是什么?

在playframework中拦截请求和检查授权

我正在使用Java play framework 2.4.2 ,我想通过拦截所有请求并检查是否设置了会话值来validation用户是否已登录。 所以我扩展了DefaultHttpRequestHandler并重写了createAction方法来拦截所有请求。 但是,我还没有找到一种validation会话的好方法。 选项1 – 失败 当我尝试获取会话值时,我得到一个运行时exception: There is no HTTP Context available from here 以下是我正在使用的课程: public class RequestHandler extends DefaultHttpRequestHandler { @Override public Action createAction(Http.Request request, Method method) { session(“loggedIn”); // Throws runtime Exception: no HTTP Context } } 选项2 – 丑陋 由于会话在技术上是一个cookie,我可以从头部检索值,如下所示: for(String cookie : request.headers().get(“Cookie”)){ System.out.println(“cookie: “+cookie); } […]