1
我有一個小型的JSF應用程序,用戶需要輸入有關他們自己的一些數據。 對於頁面上每個要求=「true」的組件,我想根據字段中是否有數據顯示圖標。將JSF組件的初始狀態設置爲無效
我的問題是,當頁面最初顯示時,所有字段都是有效的,即使它們中沒有任何數據。
所以我的問題是如何設置一個組件無效的基礎上,如果有數據在該領域或沒有?
頁面提交後(或組件失去焦點後)圖標顯示正常,它只在初始頁面加載時出現問題。 (即不存在後的數據)
這裏是我的需要驗證的組件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>
任何幫助將是讚賞。
感謝Bozho 我實現了一個版本,我用A4J:jsFunction觸發驗證,而工程:) 這本來是很高興有設置組件的狀態,而不必訴諸「提交「面板(您可以在打開頁面時看到組件更改的狀態),但我可以接受此解決方案。 – mhylle 2010-06-06 06:49:55