Sephy Sephy - 4 months ago 22
Java Question

How to keep "Choose One" option in a DropDownChoice Wicket?

When I first load a page, the default option on a dropdownchoice is "Choose One". Is there a way to keep it in the dropdown, even when I have selected a choice?

(In case I would like to put nothing later)

Answer

You need to use the DropDownChoice.setNullValid() method. From the javadoc:

Determines whether or not the null value should be included in the list of choices when the field's model value is nonnull, and whether or not the null_valid string property (e.g. "Choose One") should be displayed until a nonnull value is selected. If set to false, then "Choose One" will be displayed when the value is null. After a value is selected, and that change is propagated to the underlying model, the user will no longer see the "Choose One" option, and there will be no way to reselect null as the value. If set to true, the null string property (the empty string, by default) will always be displayed as an option, whether or not a nonnull value has ever been selected. Note that this setting has no effect on validation; in order to guarantee that a value will be specified on form validation, FormComponent.setRequired(boolean). This is because even if setNullValid() is called with false, the user can fail to provide a value simply by never activating (i.e. clicking on) the component.

If you want to keep the "Choose One" text with NullValid = true you can use a line similar to the following one in your Application.properties file:

nullValid=[Choose one]