2011-07-17 37 views
1

Wicket有幾個創建鏈接的選項。如何在HTML中的Wicket鏈接上添加參數?

E.g.這

<wicket:link><a href="Page2.html?productId=1694969292874602935">Go to Page 2 
</a></wicket:link> 

這顯示它傳遞參數。然而,我們不能使用,因爲我們需要鏈接到頁面彈出,並且:鏈接自動鏈接頁面不這樣做。

唯一的其他方式做一個鏈接是這樣的:

<a href="#" wicket:id="launchlink">click here</a> 

的問題是,用上面的符號,如何我給它一個參數的設計人員可以進入?像這樣的東西:

<a href="#" wicket:id="launchlink" wicket:params="productid=2342">click here</a> 

任何想法?

我們可以掛載頁面,然後使用硬編碼的html鏈接,例如,

<a href="/mount/launch/?productid=asdf">click here</a> 

然而,我們特別不希望此鏈接可收藏作爲其依賴於登錄會話等

理想的情況下,我們希望能夠動態地添加一些參數,並使用一些了設計師已經手動添加到html頁面。這聽起來太極端了,但你永遠不知道?

回答

0

編寫您自己的鏈接實現。

<a href="#" wicket:id="launchlink" wicket:params="productid=2342">click here</a> 

因此,你必須檢索標記流。然後可以用正則表達式提取參數。但是您應該使用另一個名稱空間來避免衝突。

要開始,尋找:

這不是一個隨時可用的答案,但我認爲它可以在沒有太多代碼的情況下完成。

2

使用BookmarkablePageLink,覆蓋其onInitialize()方法,並使用org.apache.wicket.Component.getMarkupAttributes()來獲取自定義屬性值,並將其追加到與org.apache.wicket.markup.html.link鏈接.BookmarkablePageLink.setParameter(String,String)。