我有一个h:form
带有几个输入,每个都有自己的h:message
,我正在寻找一种方法来显示(使用render
或指定一些styleClass
)只有在显示特定的时候一些其他元素h:message
(并在h:message
没有显示时隐藏).
这是一段代码片段
<li>
<h:panelGroup id="current_password_wrapper">
<p:password value="#{myBean.myCurrPass}" id="current_password" required="true"
styleClass="required_field" />
</h:panelGroup>
<h:message for="current_password"/>
</li>
<li>
<h:panelGroup id="new_password_wrapper">
<p:password value="#{myBean.myNewPass}" id="new_password" required="true"/>
</h:panelGroup>
<h:message for="new_password"/>
<h:commandLink value="my value"/>
</li>
Run Code Online (Sandbox Code Playgroud)
我想h:commandLink
只在显示时才<h:message for="new_password"/>
显示
到目前为止我找不到任何东西......
如果您的环境支持 EL 2.2,那么您可以检查是否FacesContext#getMessageList()
不empty
支持特定的客户端 ID。
<p:password binding="#{new_password}" ... />
<h:commandLink ... rendered="#{not empty facesContext.getMessageList(new_password.clientId)}" />
Run Code Online (Sandbox Code Playgroud)
如果由于验证错误而显示消息,那么您也可以只检查UIInput#isValid()
与消息关联的组件的状态。
<p:password binding="#{new_password}" ... />
<h:commandLink ... rendered="#{not new_password.valid}" />
Run Code Online (Sandbox Code Playgroud)
请注意,手动将面孔消息添加到上下文不会将输入组件标记为无效。因此,要么应该使用 trueValidator
来抛出ValidatorException
,要么input.setValid(false)
必须以编程方式完成显式调用。
归档时间: |
|
查看次数: |
1760 次 |
最近记录: |