我知道這個(另一個)網站上有很多類似的問題,但他們都沒有幫我解決我的問題。 我有2個檢票狀態頁面。頁面被安裝如下:wicket 1.5網址表格提交後的狀態頁
mountPage(firstPath, firstPage.class);
mountPage(secondPath, secondPage.class);
當第一次加載頁面第一頁時,它加載默認的構造函數和URL看起來像所需的。一旦在第一頁的形式被提交,我前進至狀態頁面secondPage如下:
Page secondPage = new secondPage(arg1, arg2);
RequestCycle().setResponsePage(secondPage);
雖然第二頁被安裝時,所得到的頁(secondPage)呈現與下面的網址:
context?21-1.IFormSubmitListener-componentName-childComponentName-childComponentName-someForm
我想要的是第二頁用我定義的安裝路徑進行渲染。 我知道這是一個有狀態的頁面,爲了讓wicket加載它的確切實例,url必須是有狀態的。我不介意在url中擁有一個頁面版本和id,我只是不想在url中有這麼長的難看的組件路徑。 也,我不明白爲什麼我需要從第二頁的網址的第一頁的形式的路徑。
據我瞭解檢票1.4 HybridUrlCodingStrategy可以做類似的事情,但我找不到任何方式在檢票1.5中做到這一點。 這甚至可能與檢票口有關嗎?
任何幫助將非常感謝,因爲這真的阻止我,我已經花了太多時間試圖解決它沒有運氣。
你的建議,問題是ARG1和ARG2是複雜的Java對象,而PageParameters只處理的StringValue,所以每當我嘗試添加/讓我的參數傳遞給了PageParameters我得到一個ClassCastException。 – zuckermanori 2012-07-26 14:12:16
公平的,我發現這個:http://apache-wicket.1842946.n4.nabble.com/Object-in-PageParameters-td1870381.html它基本上建議傳遞一個唯一的ID可以用來重建參數。如果你不能將對象保存到數據庫並檢索它,請嘗試序列化它...不理想,你也可以嘗試這樣的東西:http://stackoverflow.com/questions/8602489/delete-version-number- in-url – Jamey 2012-07-26 15:06:05
首先你可以同時擁有兩個構造函數,一個帶有parmas調用第二個構造函數。 – Kazaag 2012-07-26 18:35:00