JSF Настройка сообщения проверки для h: selectOneMenu (если ничего не выбрано) - PullRequest
5 голосов
/ 02 июня 2010

У меня есть h: selectOneMenu, который заполнен значениями перечисления, который работает отлично. Единственная проблема заключается в том, что я не знаю, как переписать стандартное сообщение об ошибке JSF, когда не выбрано допустимое значение. Сообщение об ошибке всегда bv:title: 'Choose' must be convertible to an enum from the enum that contains the constant 'Choose'. Хотя я указал требуемые сообщение и сообщение валидатора (которое работает с InputText), отображается только стандартное сообщение JSF.

Фрагмент:

<h:selectOneMenu id="title" value="#{personBean.person.title}" required="true"
                  requiredMessage="ERROR"
                  validatorMessage="ERROR">
  <f:selectItem itemValue="Choose" />
  <f:selectItems value="#{personBean.titleOptions}" />
  <f:ajax event="blur" render="titleError" />
  <f:validateRequired/> 
</h:selectOneMenu> 
<h:message for="title" errorClass="invalid" id="titleError" />

Как мне переписать стандартное сообщение валидатора? Или лучше - я могу создать копию JSF messages.properties с настроенными сообщениями об ошибках (не хочу снова определять все ошибки в моих собственных messages.properties)?

1 Ответ

11 голосов
/ 02 июня 2010

Это не «обязательное» сообщение об ошибке. Это сообщение об ошибке «конвертер». Это может появиться, когда выбранный в данный момент элемент не соответствует ни ожидаемому типу, ни одному из параметров в списке. Требуемое сообщение появится только тогда, когда в данный момент выбран пункт null.

Вы используете строковое значение в качестве первого элемента. Это не конвертируется в перечисление. Вам нужно установить его как метку элемента со значением элемента null.

<f:selectItem itemLabel="Choose" itemValue="null" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...