Проверьте на ошибки проверки в части формы в JSF - PullRequest
2 голосов
/ 21 июля 2011

Я создаю приложение Seam, которое представляет собой огромную форму, разделенную на разные части или модули. Мне нужен способ выяснить, когда модуль «завершен», то есть все проверки для полей в этом модуле проходят. Затем мне нужно что-то сделать в представлении, установить класс CSS или что-то еще.

Что-то вроде:

<a:region id="region1">
    <s:div styleClass="#{invalid ? 'errors' : ''}">
       <h:inputText required="true" id="input1" />
       <h:inputText required="true" id="input2" />
       <h:commandButton value="Save this section" reRender="region1" />
    </s:div>
</a:region>

Я подумал, что у меня есть два варианта:

  • Использование некоторой логики представления (например, # {invalid} для одного поля)
  • Использование метода в компоненте, в котором я программно получаю все компоненты для модуля и проверяю их на наличие ошибок валидации.

Однако я не могу найти какой-либо способ сделать что-либо из них. Есть идеи, если это вообще возможно?

Мы используем JSF 1.2 с Seam.

Спасибо.

1 Ответ

4 голосов
/ 21 июля 2011

Вы можете использовать UIInput#isValid(), чтобы проверить, произошла ли ошибка проверки на конкретном компоненте ввода.

<s:div styleClass="#{!input1.valid or !input2.valid ? 'errors' : ''}">
   <h:inputText binding="#{input1}" required="true" id="input1" />
   <h:inputText binding="#{input2}" required="true" id="input2" />
   <h:commandButton value="Save this section" reRender="region1" />
</s:div>
...