2016-08-24 62 views
0

我有一個包含TextField的窗體的簡單頁面。我已經使用名爲containerId的單個變量設置了模型對象(可序列化POJO)。無論我使用LoadableDetachableModel還是標準Model.of(),如果我有一個也稱爲containerId的PageParameter,那麼表單模型行爲會中斷,導致值始終保持爲PageParameter值的設置。如果我將頁面參數名稱更改爲容器,並在初始化時將該值傳遞給我的模型,問題就會消失。有沒有其他人經歷過這個?如果你能提供任何細節,爲什麼會發生這種情況?Wicket PageParameters干擾頁面的模型對象

回答

2

聽起來好像衝突在您提交表單時產生的URL中。我猜測你的頁面是以這樣一種方式安裝的,即PageParameters被編碼爲URL中的查詢參數,並且表單通過GET來提交,GET因此將其值作爲查詢參數編碼在URL中。因此添加了兩個具有相同名稱的查詢參數,其中一個會丟失。

所以,至少有兩個選項,你可以嘗試:

  1. 變化形式POST(加方法=「POST」的HTML)

  2. 安裝的方式在頁面它對頁面參數進行不同的編碼,例如類似於以下內容:

    mountPage(「/ page/$ {containerId}」,YourPageClass.class);

+1

另一種解決方法是重寫TextField#getInputName()並返回一些獨特的東西(由您決定可能是什麼)。 –