如何在play的控制器中获取url的锚点

时间:2011-01-15 10:53:25

标签: url playframework

假设我有一个控制器和一个动作:

public Questions extends BaseController {
    public static void show(id) {
        // how to get the anchor here??
    }
}

包含http://aaa.com/questions/show?id=123#555等锚点的网址会映射到此操作,我们如何才能获得555锚点show

2 个答案:

答案 0 :(得分:5)

要将锚添加到url,我使用重定向方法和Router类,所以对于你的情况:

public Questions extends BaseController {
    public static void show(id) {

        some stuff...

        Map<String, Object> args = new HashMap<String, Object>();
        args.put("id", questionID);
        String url = Router.getFullUrl("Questions.show", args);
        redirect(url + "#555");
    }
}

答案 1 :(得分:3)

如果我理解正确,则无法将URL的锚点部分作为http请求的一部分发送回服务器。它仅在本地使用,用于锚定页面以进行页面内导航。

有关详情Retrieving Anchor Link In URL for ASP.Net

,请参阅此帖子

但是,如果要在视图中添加锚点,而不是使用重定向并在控制器中使用路由器,则只需在视图中(最佳位置)进行操作即可。

<a href='@{Questions.show(id)}#555'>link to question</a>