我想重新定向到playframework中的引用网址,我试图在控制器中的日志功能请求后记录此网址:
@After
public static void log(){
session.put("referrer", request.url);
}
它可以工作,但我不想在每个控制器中编写相同的代码。当我让所有控制器扩展AbstractController类(扩展play.Controller
)并将此代码放入AbstracController时,我收到此错误:
Unexpected error : Cannot read parameter names for public static void controllers.AbstractController.log()
任何人都可以帮助我。提前谢谢。
答案 0 :(得分:3)
尝试在实用程序对象中添加此方法,并使用@With
注释控制器public class ControllerUtil extends Controller{
@After
public static void log(){
session.put("referrer", request.url);
}
}
@With(ControlerUtil.class)
public MyController extends Controller{
public static index(){
render();
}
}
或者使用@Util
注释您的日志方法<强>更新强>
正确,您需要让ControllerUtil扩展Controller。如果您更喜欢将其命名为Application而不是ControllerUtil
答案 1 :(得分:2)
request.headers.get("referer");