Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 Primefaces对话框客户端验证未显示_Jsf 2_Primefaces_Modal Dialog - Fatal编程技术网

Jsf 2 Primefaces对话框客户端验证未显示

Jsf 2 Primefaces对话框客户端验证未显示,jsf-2,primefaces,modal-dialog,Jsf 2,Primefaces,Modal Dialog,我在复合控件上有一个Primefaces 5.0模式对话框。对话框中有几个字段标记为必需。当单击对话框上的按钮时,我预期会触发客户端验证,并且似乎会触发,因为没有调用支持bean,但消息没有显示: <p:dialog id="dialogCorporateShareHolder" header="Shareholder (Company)" widgetVar="dlgCorporateShareHolder" modal="true"> <p:panelGr

我在复合控件上有一个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>

对话框显示,验证被调用(我很确定),但没有显示任何消息


您只需更新
p:message
或家长,例如使用

update="corporateShareholders corporateShareholderDetails" 
顺便说一句,我相信最好的做法是

  • 让对话框在xhtml中最后一个,在其他表单之外
  • 在对话框内部有一个窗体

您能否尝试使用update=“corporateShareholders corporateShareholderDetails”这一有效工具!把它添加为一个答案@JaqenH'gharyo确实根本没有更新
。几乎每天都会有人问这样一个问题:“我希望某些组件会被ajax更新,尽管我没有在
中指定它”,我们需要一个规范的dupe。@SeanCoetzee很高兴它能工作,这些东西可以看不见。。。id=corporateShareholders的组件是什么?只是一些列表?是的,只是一个数据网格。我很想这样做,但我的对话框在一个复合控件中,它已经在一个表单中。不用担心,因为它已经对您起作用了,我只是想提醒自己:)在你的评论之后,我开始有其他相关的问题,并最终将对话框移动到它们自己的形式。好多了,谢谢。