這是我要做的事:
@With({EnrichWithUser.class})
public class CouponController extends Controller {
@With({EnrichWithUser.class})
public static Result test(){
return Results.ok("TEST");
}
}
整個控制器或一個特定的方法應該用行動來註釋。在行動中,您可以訪問會話。上面的代碼並不代表您的情況,但您會發現這樣的想法:
public class EnrichWithUser extends Action.Simple {
public Result call(Http.Context ctx) throws Throwable {
User user = (User)ctx.args.get("user");
if(user == null){
String email = ctx.session().get("email");
if(email != null){
user = User.findByEmail(email);
ctx.args.put("user", user);
}
} else {
//System.out.println("USER OBTAINED FROM SESSION");
}
return delegate.call(ctx);
}
}
感謝您提供簡單而直觀的示例。仍然無法讓它在Global中使用我的onRequest重寫,但註釋我的所有控制器都能正常工作。 –