如何从PlayPlugin传递对象

时间:2012-05-16 11:25:24

标签: playframework playframework-1.x

我正在写一个PlayPlugin。在rawInvocation(请求,响应)方法中,我创建了一个我希望所有控制器都可以访问的对象。实现这一目标的首选方法是什么?每个用户都有自己的对象。似乎尚未创建Play会话,因此我无法将其存储在那里。 感谢

ChristianGüldner

2 个答案:

答案 0 :(得分:2)

如果您想使用插件创建全局过滤器,那么最好覆盖PlayPlugin.beforeActionInvocation方法:

public class MyPlugin extends PlayPlugin{
  @override public void beforeActionInvocation(Method actionMethod) {
     Object myObject = ...
     Http.Request.current().args.put("myobject", myObject);
  }
}

在任何一个控制器中,您都可以通过以下方式获取对象:

对象myObject = Http.Request.current().args.get("myobject")

答案 1 :(得分:0)

我不确定这是最好还是推荐方式,但您可以随时将其添加到request.param