Я признаю это, я сообщал об этом более года назад как JSF выпуск 1299 . Это все еще не решено, так как имеет низкий приоритет. Это относится не только ко всем UIInput
компонентам, но и к MenuRenderer
, который отвечает за отображение элементов HTML <select>
. Все остальные элементы ввода HTML ведут себя так, как и следовало ожидать, переданное значение будет отображаться повторно (ну, на самом деле это тоже ничего).
Поскольку вы уже работаете с JSF 2.0, я предлагаю вам решить эту проблему с небольшой помощью f:ajax
, чтобы раскрывающийся список не отображался повторно и, следовательно, сохранял свой выбор.
<h:selectOneMenu id="frequency" value="#{bean.frequency}" required="true">
<f:selectItems value="#{bean.frequencies}" />
<f:ajax render="frequencyMessage" />
</h:selectOneMenu>
<h:message id="frequencyMessage" for="frequency" />
Дополнительным преимуществом является то, что конечный пользователь имеет мгновенную обратную связь, и это лучше для пользовательского опыта.