繁体   English   中英

Wicket:从浏览器获取URL

[英]Wicket: Get URL from browser

我需要使用Wicket从Firefox中打开的当前网页检索URL。 有人可以告诉我该怎么做吗?

您需要查询基础HTTPServletRequest

public class DummyPage extends WebPage{

    private String getRequestUrl(){
        // this is a wicket-specific request interface
        final Request request = getRequest();
        if(request instanceof WebRequest){
            final WebRequest wr = (WebRequest) request;
            // but this is the real thing
            final HttpServletRequest hsr = wr.getHttpServletRequest();
            String reqUrl = hsr.getRequestURL().toString();
            final String queryString = hsr.getQueryString();
            if(queryString != null){
                reqUrl += "?" + queryString;
            }
            return reqUrl;
        }
        return null;

    }

}

参考:

要获取当前页面的网址,请使用webrequest和UrlRenderer:

Url url = ((WebRequest)RequestCycle.get().getRequest()).getUrl();
String fullUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(url);

对于wicket 1.5来说,Sean Patrick Floyd的解决方案似乎已经过时了

如果使用wicket 1.5(或以上我猜)这里是解决方案:

RequestCycle.get().getUrlRenderer().renderFullUrl(
    Url.parse(urlFor(MyPage.class,null).toString()));

参考

获取显示的网址

这有效。 我正在使用wicket 1.5;

新URL(RequestCycle.get()。getUrlRenderer()。renderFullUrl(Url.parse(urlFor(HomePage.class,null).toString())))。 getAuthority() ;

示例: http//example.com80 / a_long_path /

getAuthproty()将返回example.com:80

getHost()将返回example.com。

根据您的具体需求,这可能无法实现。 Wicket wiki中有一个简短的指南,但它有一些注意事项,特别是它只返回1.3之后的Wicket版本中的相对URL。 也就是说,使用的方法是

String url = urlFor("pageMapName", MyPage.class, new PageParameters("foo=bar"));

如果您使用wiki的替代方法 - 涉及表单的方法 - 请注意: getPage() 不是Wicket的公共API的一部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM