Теги Spring MVC Form: есть ли стандартный способ добавить элемент «Нет выбора»? - PullRequest
30 голосов
/ 02 октября 2008

Есть выпадающий список, и я хочу добавить в список пункт «Нет выбора», который должен дать мне «ноль» при отправке. Я использую производный контроллер 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 для отображения этого «нулевого» значения «Нет выбора». Есть ли лучшее решение?

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

Ответы [ 2 ]

39 голосов
/ 05 октября 2008

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

<form:select path="country" title="country" >
     <form:option value="">&nbsp;</form:option>
     <form:options items="${countryList}" />
</form:select>
0 голосов
/ 06 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...