2012-07-19 23 views
3

我想設置一個特殊的錯誤類,將div塊阻塞到JSF的自定義組件中。如果此字段未通過驗證,我想將errorClass設置爲「錯誤」。如何從JSF組件獲取驗證狀態

<c:if test="${?????}"> 
    <c:set var="errorClass" value="error" />  
</c:if> 

<div class="input ${errorClass}"> 
    <label for="#{rich:clientId('input')}:input">#{cc.attrs.label}</label> 
    <h:inputText id="input" value="#{cc.attrs.value}" 
     <cc:insertChildren /> 
    </h:inputText> 
</div> 

回答

3

您可以使用您的component.valid的inputText的樣式或styleClass屬性裏面:

<h:inputText value="#{cc.attrs.value}" 
      styleClass="#{component.valid ? '' : 'error'}" /> 

然而,這並不會在你工作div,因爲它是沒有JSF組件。你可以嘗試組件綁定(從理論,未測試):

<div class="#{myComponent.valid ? '' : 'error'}"> 
    <h:inputText id="input" value="#{cc.attrs.value}" binding="#{myComponent}"> 
     <cc:insertChildren /> 
    </h:inputText> 
</div> 
+0

謝謝,但這是行不通的。也許有一種方法可以將放入? – denisoid 2012-07-19 12:12:14

+0

這是一個不同的要求。但是什麼樣的行爲不起作用,第一個或第二個例子還是兩者兼而有之?怎麼了? – 2012-07-19 12:29:55

+0

我把這段代碼寫入頁面: but'錯誤「一直存在。 – denisoid 2012-07-19 12:41:59