2011-08-08 107 views

回答

37

您需要使用DropDownChoice.setNullValid()方法。根據JavaDoc:

確定空值是否應該被包含在選擇列表時,該字段的模型值爲非空,以及是否將null_valid字符串屬性(如「選擇其中一項」)應顯示直到選擇一個非空值。如果設置爲false,則當值爲空時,將顯示「選擇一個」。選擇一個值後,將該更改傳播到基礎模型,用戶將不再看到「選擇一個」選項,並且將無法重新選擇空值作爲值。如果設置爲true,則空字符串屬性(缺省情況下爲空字符串)將始終顯示爲選項,無論是否選擇了非空值。請注意,此設置對驗證沒有影響;爲了保證在表單驗證中指定一個值,FormComponent.setRequired(boolean)。這是因爲即使使用false調用setNullValid(),用戶也可能無法簡單地通過從不激活(即單擊)組件來提供值。

如果你想保持與NullValid =真正的「二選一」的文字,你可以在你的Application.properties文件中使用類似於下面的一行:

nullValid=[Choose one] 
+0

不錯,似乎這種方法滑倒了我的注意力。謝謝 ! – Sephy

+6

+1雖然它並不一定是應用程序屬性,但實際上通常它是您的頁面屬性,如「Choose a thingymajig」。你可以用你的組件ID作爲它的前綴,來爲同一頁面上的不同組件定義特定的消息。 – biziclop

4

在的.java:

DropDownChoice<Boolean> myDropDown = new DropDownChoice<>(
    "myDropDownWicketId", model, Arrays.asList(true, false), renderer); 
myDropDown.setNullValid(true); 

在屬性文件與Java類中添加相關:

myDropDownWicketId.nullValid=Choose One 
myDropDownWicketId.true=Yes 
myDropDownWicketId.false=No 
相關問題