Java 播放框架:如何传递onRequest函数中提取的参数
我重写了Java 播放框架:如何传递onRequest函数中提取的参数,java,playframework,Java,Playframework,我重写了public Action-onRequest(final Http.Request-Request,Method)方法,以检查强制Http头是否传入且有效,即:我提取apiKey(和其他内容),并确保它们有效(存在与apiKey相关联的数据)。然后我调用返回super.onRequest(请求,方法)和我结束在我的控制器中,我再次必须提取apiKey并从DB中获取相关数据。 是否有方法将数据传递到控制器的方法(例如:publicstaticresult addUser()) 谢谢。我知
public Action-onRequest(final Http.Request-Request,Method)
方法,以检查强制Http头是否传入且有效,即:我提取apiKey(和其他内容),并确保它们有效(存在与apiKey相关联的数据)。然后我调用返回super.onRequest(请求,方法)代码>和我结束在我的控制器中,我再次必须提取apiKey并从DB中获取相关数据。
是否有方法将数据传递到控制器的方法(例如:publicstaticresult addUser()
)
谢谢。我知道这个问题是针对Java的,但我在Scala中使用Play,这个问题与Play的关系比与Java的关系更大
在Scala中,我可以扩展WrappedRequest
来创建自己的自定义请求类型,该类型具有我希望在控制器中访问的实例变量:
// Scala code
case class MyRequest[A](request: Request[A]) extends WrappedRequest(request) {
// This is a public instance variable
val apiKey = request.headers.get("Authorization)
}
然后,在我的控制器中,我可以访问动作对象,该对象现在的类型为MyRequest
:
// Scala code
def foobar(action: MyRequest[AnyContent]) = Action {
// Do something with the api key
val apiKey = action.apiKey
// Send back a response
Ok("foobar")
}
在Java中,您似乎可以使用什么播放版本来执行类似的操作?GlobalSettings在2.5中不推荐使用