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