Как сохранить опцию «Выбрать один» в калитке DropDownChoice? - PullRequest
17 голосов
/ 08 августа 2011

Когда я впервые загружаю страницу, опцией по умолчанию в выпадающем списке является «Выбрать одну».Есть ли способ сохранить его в выпадающем списке, даже если я выбрал вариант?
(на случай, если я не хотел бы ничего ставить позже)

Ответы [ 2 ]

37 голосов
/ 09 августа 2011

Вам необходимо использовать метод DropDownChoice.setNullValid().Из javadoc:

Определяет, должно ли нулевое значение быть включено в список вариантов, если значение модели поля не равно нулю, и указано или нет свойство строки null_valid (например, «Выбрать один»)) должен отображаться до тех пор, пока не будет выбрано ненулевое значение.Если установлено значение false, то «Выбрать один» будет отображаться, когда значение равно нулю.После того, как значение выбрано, и это изменение распространяется на базовую модель, пользователь больше не будет видеть опцию «Выбрать один», и не будет никакого способа повторно выбрать нуль в качестве значения.Если установлено значение true, свойство пустой строки (пустая строка по умолчанию) всегда будет отображаться как опция независимо от того, было ли выбрано ненулевое значение или нет.Обратите внимание, что этот параметр не влияет на проверку;чтобы гарантировать, что значение будет указано при проверке формы, FormComponent.setRequired (логическое значение).Это связано с тем, что даже если setNullValid () вызывается с ложью, пользователь может не предоставить значение просто, никогда не активируя (т.е. щелкая) компонент.

Если вы хотите оставить «Выбрать»Один текст с NullValid = true, вы можете использовать строку, аналогичную следующей в вашем файле Application.properties:

nullValid=[Choose one]
5 голосов
/ 19 ноября 2015

В .java:

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

В файле .properties, связанном с классом java, добавлено:

myDropDownWicketId.nullValid=Choose One
myDropDownWicketId.true=Yes
myDropDownWicketId.false=No
...