2015-09-05 14 views
0

我有安裝頁面以這種形式(有一個預先定義的參數):頁上的Apache Wicket的事件「是mouted上......」

mountPage("/lista/${variant}", StronaEntityV2.class); 

當參數「變異體」被賦予一切都OK。但是,當參數不存在(是也沒關係,從應用角度)URL是建立在形式

wicket/bookmarkable/all....package...StronaEntityV2?8 

這是確定了,但是我會知道的情況。在簡單的情況下(有一個預定義的參數)檢查參數是好的,但更復雜的並不是那麼簡單(並且必須在不同的地方維護代碼)。 我理想的成像解決方案是事件

page.OnPageIsMountedOn(URL to_me) 

我將接受廣泛的解決方案。

FORMAL:請在標籤上檢票1.6 &檢票6整合同義詞,並創造新的檢票口,7

回答

3

你的頁面被配置來聽/lista/${variant}

當你這樣做:setResponsePage(StronaEntityV2.class, paramsWithVariant)然後Wicket將使用掛載點,併產生:/lista/variantValue

但是,如果你這樣做:setResponsePage(StronaEntityV2.class),即沒有提供,那麼檢票會忽略PageParameters /lista/${variant}(因爲它不匹配),並會產生一種「默認」頁面的URL,即/wicket/bookmarkable/com.example.StronaEntityV2

所以應用程序控制應該使用哪個url。

您可以使用可選參數佔位符:/lista/#{variant}。請注意,我現在使用#而不是$。如果沒有變體參數提供,Wicket將產生/lista/。在頁面構造函數中,您將知道url總是「/ lista」,但參數可能是null,所以最好使用:pageParameters.get("variant").toXyz(defaultValue).toOptionalXyz()

+0

感謝一個字符'#':)我從來沒有讀過這個選項? –