2012-03-26 44 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");