我的页面中有两个表单,第一个处方集是带有验证的输入字段,另一个是dataTable。第一个处方集有一个消息区域来显示验证错误,第二个处方集有一个消息区域来显示数据检索的问题(这个消息区域是从myController.search更新的)。:
<h:form id="form1">
<p:message id="messageForm1" for=":form1" />
<p:inputText id="text1" value="#{myBean.data}" required="true" />
....
<p:commandButton value="Search" actionListener"#{myController.search}"
update=":form2:dataTable :form2:messageForm2 :form1:messageForm1" process="text1, ..." />
</h:form>
<h:form id="form2">
<p:message id="messageForm2" for="messageForm2" />
<p:dataTable>
...
</p:dataTable>
</h:form>
问题是form2中的消息正在运行,但form1中的验证消息从未显示
答案 0 :(得分:2)
for
标记的p:message
属性说明:
要显示其消息的组件的ID。
因此您无法指定表单的ID。您必须指定单个表单组件的ID。例如<p:message id="messageForm1" for="text1" />
。但是,您必须为每个表单组件创建一个消息元素。
另一种方法是使用p:messages
标记。有关示例,请参阅此处:http://www.primefaces.org/showcase-labs/ui/messages.jsf