如何在play框架中获取referrer url

时间:2012-03-26 03:01:19

标签: playframework playframework-1.x

我想重新定向到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()

任何人都可以帮助我。提前谢谢。

2 个答案:

答案 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");