Отключение второго текстового поля после проверки данных через ajax первого текстового поля

Как я экспериментировал с JSF 2.0, я столкнулся с таким сценарием.

У меня есть два текстовых поля - на основе ввода первого поля вызов ajax запускается с использованием

<f:ajax ... />

После того, как ответ вернется, я возвращаю второе текстовое поле.. но я хочу отключить второе текстовое поле на основе некоторой проверки на стороне сервера первого значения поля.

Я не хочу, чтобы отключить использование стиля на основе третьего свойства, которое устанавливается после bean после проверки.

Есть ли альтернативные способы.

заблаговременно

Ответ 1

Привяжите первый компонент ввода к представлению атрибуту binding и используйте UIInput#isValid() в атрибуте disabled второго ввода поле. Он вернет false, если валидация не сработала для данного входного компонента.

<h:inputText binding="#{input1}" value="#{bean.input1}">
    <f:validator validatorId="yourValidator" />
    <f:ajax event="blur" render="input2" />
</h:inputText>
<h:inputText id="input2" value="#{bean.input2}" disabled="#{!input1.valid}" />