У меня есть небольшое приложение JSF, в котором пользователю необходимо ввести некоторые данные о себе. Для каждого компонента на странице с required="true" я хочу показать значок в зависимости от того, есть ли данные в поле или нет.
Моя проблема в том, что при первоначальном отображении страницы все поля действительны, даже если в них нет данных.
Итак, мой вопрос: как я могу сделать компонент недействительным в зависимости от того, есть ли данные в поле или нет?
После отправки страницы (или после того, как компонент теряет фокус) значок отображается правильно, проблема возникает только при начальной загрузке страницы. (т.е. нет почтовых данных)
Вот мой xhtml для компонента, который необходимо проверить:
<s:decorate id="employeeIdDecoration" template="/general/util/errorStyle.xhtml">
<ui:define name="label">#{messages['userdetails.employeeId']}</ui:define>
<h:inputText value="#{authenticator.user.employeeId}" required="true">
<a4j:support event="onblur" reRender="employeeIdDecoration" bypassUpdates="true"/>
</h:inputText>
the template:
<s:label styleClass="#{invalid?'error':''}">
<ui:insert name="label"/>
<s:span styleClass="required" rendered="#{required}">*</s:span>
</s:label>
<span class="#{invalid?'error':''}">
<s:validateAll>
<ui:insert/>
</s:validateAll>
<h:graphicImage value="/resources/redx.png" rendered="#{invalid}"
height="16"
width="16"
style="vertical-align:middle;"/>
<h:graphicImage value="/resources/Checkmark.png" rendered="#{!invalid}"
height="16"
width="16"
style="vertical-align:middle;"/>
</span>
Любая помощь будет оценена.