【发布时间】:2014-08-27 06:15:48
【问题描述】:
我在复合控件上有一个 Primefaces 5.0 模式对话框。该对话框有几个字段标记为必填项。当单击对话框上的按钮时,我希望客户端验证会触发,并且似乎确实如此,因为未调用支持 bean,但未显示消息:
<p:dialog id="dialogCorporateShareHolder" header="Shareholder (Company)"
widgetVar="dlgCorporateShareHolder" modal="true">
<p:panelGrid columns="3" id="corporateShareHolderDetails">
<h:outputLabel for="companyName" value="Company name"/>
<p:inputText id="companyName" required="true"
value="#{cc.attrs.corporateShareHolder.companyName}"
label="Company name"/>
<p:message for="companyName"/>
<f:facet name="footer">
<p:commandButton id="submitCorporate" value="Submit"
update="corporateShareholders"
actionListener="#{cc.attrs.controller.addCorporateShareHolder}"/>
</f:facet>
</p:panelGrid>
</p:dialog>
对话框显示,验证被调用(我很确定),但没有显示任何消息。
【问题讨论】:
-
你可以试试 update="corporateShareholders CorporateShareholderDetails"
-
成功了!将其添加为答案@JaqenH'ghar
-
您确实根本没有更新
<p:message>。几乎每天都会有人问这种问题“尽管我没有在<p:commandButton update>中指定它,但我希望某些组件会被 ajax 更新” 几乎每天都会被问到,我们需要一个规范的欺骗。 -
@SeanCoetzee 很高兴它起作用了,这些东西可以不可见... id=corporateShareholders 的组件是什么,只是一些列表?
-
是的,只是一个数据网格。
标签: jsf-2 primefaces modal-dialog