【问题标题】:How to know if component child is not valid Primefaces?如何知道子组件是否不是有效的 Primefaces?
【发布时间】:2017-04-11 04:06:25
【问题描述】:

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

<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>

提前谢谢你。

【问题讨论】:

  • 无效是什么意思?!?
  • @YagamiLight: OP 表示包含无效值

标签: jsf primefaces jsf-2


【解决方案1】:

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

了解这一点,以下是实现这一目标的方法:

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

另见:

【讨论】:

  • 出于好奇,您是如何得出第一句话的结论的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-22
相关资源
最近更新 更多