2012-03-26 67 views
1

我想回重定向到playframework引用网址,我曾尝试在控制器通过日志功能的要求后,登录这个网址:如何获得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() 

谁能帮我。提前致谢。

回答

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注释日志方法

UPDATE

正确的,你需要有你的ControllerUtil扩展控制器。如果您更喜欢将其命名为应用程序而不是ControllerUtil

+0

它不起作用。类ControllerUtil不会扩展play.mvc.Controller。因此它没有会话变量?我想念什么? – 2012-03-26 09:19:06

+0

查看更新回复 – emt14 2012-03-26 09:47:36

+0

非常感谢。它像一个魅力。 – 2012-03-26 10:12:58

1
request.headers.get("referer");