Просто привяжите выпадающий список к представлению и непосредственно проверьте его значение в атрибуте required
.
<h:selectOneMenu binding="#{menu}" value="#{bean.item}">
<f:selectItem itemValue="first" itemLabel="First item" />
<f:selectItem itemValue="second" itemLabel="Second item" />
</h:selectOneMenu>
<h:inputText value="#{bean.input1}" required="#{menu.value eq 'first'}" />
<h:inputText value="#{bean.input2}" required="#{menu.value eq 'first'}" />
Обратите внимание, что пример binding
"как есть". Не устанавливайте здесь свойство bean-компонента. См. Также Как работает атрибут 'binding' в JSF? Когда и как его следует использовать?
Также обратите внимание, что заказ компонентов имеет большое значение. Если меню расположено под входами в дереве, используйте #{menu.submittedValue eq 'first'}
. Или, если вы хотите быть независимым от этого, используйте #{param[menu.clientId] eq 'first'}
.