2011-08-08 106 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 
相关问题