Я использую Spring Webflow 2.4.0.M1 с Mojara JSF 2.1.21.
У меня есть очень простой h: selectOneMenu, например:
<h:selectOneMenu id="title" value="#{person.title}" required="true" requiredMessage="Required title">
<f:selectItem noSelectionOption="true" itemLabel="Please Select" itemValue="" />
<f:selectItem itemLabel="Mr" itemValue="MR" />
<f:selectItem itemLabel="Mrs" itemValue="MRS" />
</h:selectOneMenu>
<p:message for="title"/>
После отправки формы со значением, оставленным на «Пожалуйста, выберите», я получаю необходимое сообщение. Если затем я выберу вариант «Г-н», а затем отправлю снова, но с другими полями на странице с ошибками, тогда страница будет перезагружена, и требуемое сообщение для заголовка исчезнет, и г-н выбран, как и ожидалось. Если я затем изменю его обратно на «Пожалуйста, выберите» и снова отправлю, я снова получу требуемое сообщение, но выбранный вариант снова станет «мистером» вместо «Пожалуйста, выберите». EL #{person.title} привязывается к строке, которая по умолчанию является пустой строкой. Пока это кажется проблемой только для selectOneMenu, так как выполнение того же самого в h: inputText работает правильно.
Любые идеи? Также пробовали использовать webflow 2.3.2.RELEASE, и возникла та же проблема.
Похоже, это та же проблема, что и здесь: JAVASERVERFACES-932, что касается 4 года, и имеет фиксированное разрешение. Это точно не исправлено. Я попытаюсь расширить MenuRenderer и переопределить метод renderOption с помощью предложения, упомянутого в конце выпуска Jira.