2012-09-19 55 views
1

我正在編寫一個wicket 1.5應用程序,我需要控制url出於安全原因的方式。Wicket 1.5 - 如何配置鏈接生成的網址?

mountPage("xxx/yyy", Zzzz.class) 

非常好,但我有一個鏈接監聽器生成的url的問題。對於爲例,如果我添加以下鏈接到我的網頁:

add(new Link<Void>("link-login") { 
    @Override 
    public void onClick() { 
    setResponsePage(LoginPage.class); 
    } 
}); 

我得到如下生成的標記:

<a wicket:id="link-login" href="./home?0-1.ILinkListener-accessMenu-link~login">Login</a> 

是否有配置生成的URL(./home?0-1.ILinkListener-accessMenu-link~login)的方法嗎?至少,我想刪除〜字符。

編輯: 解決...根據檢票人員,生成的href使用' - '作爲分隔符編碼檢票口路徑。如果wicket id包含' - ',它將在'〜'中轉換以避免衝突。所以爲了避免這種情況,只需從您的檢票ID中刪除' - '即可。

+0

你檢出了org.apache.wicket.core.request.mapper.CryptoMapper ?.它爲您提供最終的URL安全。 –

+0

請考慮投票我的最後一條評論:)。謝謝! –

回答

2

默認字符 - 保留爲組件id的分隔符。你可以在這裏看看https://cwiki.apache.org/confluence/display/WICKET/Request+mapping,如果你擔心安全問題,可以嘗試使用CryptoMapper。

+0

Tx但我關心的是〜(代字號),是否可以改變它? – Nico

+0

此外,我不確定RequestMapper允許修改生成的href。 – Nico

+0

不,我不認爲可以修改生成的href,除非您構建自定義的IRequestMapper實現。也許你可以改變你的組件ID來代替 - –