如何在DropDownChoice Wicket中保留"选择一个"选项?

Sep*_*phy 17 java wicket dropdownchoice

当我第一次加载页面时,下拉选项中的默认选项是"选择一个".有没有办法将它保留在下拉列表中,即使我选择了一个选项?
(如果我想稍后放)

Mar*_*elo 37

您需要使用该DropDownChoice.setNullValid()方法.来自javadoc:

确定当字段的模型值为非空时,是否应将空值包括在选项列表中,以及是否应显示null_valid字符串属性(例如"选择一个"),直到选择了非空值.如果设置为false,则当值为null时,将显示"Choose One".选择一个值后,该更改将传播到基础模型,用户将不再看到"选择一个"选项,并且无法重新选择null作为值.如果设置为true,则无论是否选择了非空值,空字符串属性(默认情况下为空字符串)将始终显示为选项.请注意,此设置对验证没有影响; 为了保证在表单验证中指定一个值,FormComponent.setRequired(boolean).这是因为即使使用false调用setNullValid(),用户也可能无法通过永远不激活(即单击)组件来提供值.

如果要使用NullValid = true保留"选择一个"文本,可以在Application.properties文件中使用类似于以下行的行:

nullValid=[Choose one]
Run Code Online (Sandbox Code Playgroud)

  • +1它不一定是应用程序属性,实际上通常它是您的页面属性,例如"Choose a thingymajig".您可以在其前面加上组件ID,以便在同一页面上为不同组件定义特定消息. (6认同)

小智 5

在.java中:

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

在与java类相关联的.properties文件中添加:

myDropDownWicketId.nullValid=Choose One
myDropDownWicketId.true=Yes
myDropDownWicketId.false=No
Run Code Online (Sandbox Code Playgroud)