【问题标题】:How to get referrer url in playframework如何在 playframework 中获取引荐来源网址
【发布时间】:2012-03-26 03:01:18
【问题描述】:

我想在 playframework 中重定向回引荐来源网址,并且我尝试在控制器中的日志功能请求后记录此网址:

@After
public static void log(){
    session.put("referrer", request.url);
}

它有效,但我不想在每个控制器中编写相同的代码。当我让所有控制器扩展 AbstractController 类(扩展 play.Controller)并将此代码放入 AbstractController 时,我收到此错误:

Unexpected error : Cannot read parameter names for public static void controllers.AbstractController.log()

谁能帮帮我。提前致谢。

【问题讨论】:

    标签: playframework playframework-1.x


    【解决方案1】:

    尝试在实用程序对象中添加此方法并使用 @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

    【讨论】:

    • 它不起作用。 ControllerUtil 类不扩展 play.mvc.Controller。因此它没有会话变量?我错过了什么吗?
    • @JanusTroelsen: Play-1.2.3
    【解决方案2】:
    request.headers.get("referer");
    

    【讨论】:

      猜你喜欢
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多