【发布时间】:2010-06-06 14:17:05
【问题描述】:
我有一个小型 JSF 应用程序,用户需要在其中输入一些关于他们自己的数据。 对于页面上需要="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>
模板:
<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>
我们将不胜感激。
【问题讨论】: