簡體   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