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

Spring Теги MVC Form: существует ли стандартный способ добавления элемента "Без выбора"?

Существует раскрывающийся список выбора, и я хочу добавить элемент "Без выбора" в список, который должен дать мне "null" при отправке. Я использую контроллер SimpleFormController.

protected Map referenceData(HttpServletRequest httpServletRequest, Object o, Errors errors) throws Exception {
    Map<String, Object> map = new HashMap<String, Object>();

    map.put("countryList", Arrays.asList(Country.values()));

    return map;
}

И часть jspx

<form:select path="country" items="${countryList}" title="country"/>

Одним из возможных решений, похоже, является добавление нулевого значения в начало списка, а затем использование пользовательского PropertyEditor для этого "null" как "Без выбора". Есть ли лучшее решение?

@Edit: Я решил это с помощью специальной аннотации проверки, которая проверяет, выбрано ли выбранное значение "Нет выбора". Есть ли более стандартное и более легкое решение?

4b9b3361

Ответ 1

Один вариант:

<form:select path="country" title="country" >
     <form:option value="">&nbsp;</form:option>
     <form:options items="${countryList}" />
</form:select>

Ответ 2

Я не думаю, что для этого вам понадобится редактор свойств. Если параметр "пустой" является первым в списке, а тег, который выводит список, не выделяет ни один из них, как выбранный, то браузер должен автоматически выбрать первый "пустой".

При отправке формы попробуйте выполнить ее так, чтобы "пустое" значение привязано к вашей команде как нуль, что может произойти автоматически, в зависимости от типа.