2012-07-19 26 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