Подтвердить что ты не робот

Как сохранить опцию "Выбрать один" в кассете DropDownChoice?

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

4b9b3361

Ответ 1

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

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

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

nullValid=[Choose one]

Ответ 2

В .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