Spring 3: выберите значение для отображения значения - PullRequest
0 голосов
/ 21 февраля 2012

У меня очень простой сценарий для обработки.Перечисление создается для представления набора параметров для элемента управления select.Элемент управления select должен иметь подсказку, сопоставленную с «-» в качестве значения подсказки.Соответствующее перечисление не имеет этой черты.Когда страница отправляется с выбранным элементом управления, все еще находящимся в приглашении, выдается исключение.Как вы обрабатываете такие случаи?

Страница:

<select id="filterUserAccessLevel" name="filterUserAccessLevel">
<option value="-">Select Value</option>
<option value="DEPOSITOR">Depositor</option>
<option value="READER">Reader</option>
<option value="AUTHOR">Author</option>
<option value="EDITOR">Editor</option>
<option value="ADMINISTRATOR">Administrator</option>
</select>

<input type="submit" name="resetFilter" value="<spring:message code="common.filterResetButtonLabel" />" />

UserAccessLevel enum:

public enum UserAccessLevel {
DEPOSITOR("DEPOSITOR"),
READER("READER"),
AUTHOR("AUTHOR"),
EDITOR("EDITOR"),
ADMINISTRATOR("ADMINISTRATOR");

private String code;

private UserAccessLevel(String code) {
    this.code=code;
}

public String getCode() {
    return this.code;
}
}

Контроллер:

@RequestMapping(value="/userIndex/", method=RequestMethod.POST, params="resetFilter")
public void resetFilter(@ModelAttribute("userIndexBean") UserIndexBean bean, Model model) {
    System.out.println("resetFilter()");
    bean.resetFilterSection();
    loadBean(1, bean, model);
}   

Исключение:

Field error in object 'userIndexBean' on field 'filterUserAccessLevel': rejected value [-];

1 Ответ

2 голосов
/ 21 февраля 2012

Зачем нужна опция, сопоставленная с "-"? Разве это не может быть пустой строкой?

В этом случае я думаю, что самое простое решение:

<option value="">Select Value</option>

.

@RequestMapping("userIndex")
public void resetFilter(@RequestParam(required = false) UserAccessLevel filterUserAccessLevel) {
...
}   
...