如何知道组件子元素是否无效Primefaces?

时间:2017-04-11 04:06:26

标签: jsf primefaces jsf-2

我使用的是Primefaces 5.0,当<h:panelGroup>无效时,我需要在元素<p:inputText>中添加类。我有以下代码:

<h:panelGroup layout="block" styleClass="form-group #{ VALIDATION HERE ? '' : 'has-error'}" >                               
  <p:outputLabel for="txtUserId" value="ID:"/>
  <p:inputText styleClass="form-control" id="txtUserId" required="true" value="#{userAction.user.id}">                                  
      <f:ajax event="keyup" execute="@this" render="msgtxtUserId"/>
      <f:validateLength minimum="2" />                                  
  </p:inputText>
  <p:message for="txtUserId" id="msgTxtIdUsuario" />
</h:panelGroup>

提前谢谢。

1 个答案:

答案 0 :(得分:4)

您显然已经知道可以使用UIInput#isValid()来检查输入组件是否有效,并且您可以在EL中使用#{component.valid}来实现此目的。您似乎还没有意识到#{component}实际上是指UIComponent类的实例。如果您检查其javadoc,那么您应该注意到findComponent()方法可用于通过搜索表达式查找子组件。

了解这一点,以下是如何实现这一目标的:

<h:panelGroup ... styleClass="#{component.findComponent('txtUserId').valid ? '' : 'has-error'}">
    <p:inputText id="txtUserId" ... />
    ...
</h:panelGroup>

另见: