我在Glassfish上使用带有JSF-2的Primefaces,试图交叉验证表单。场景如下:
<h:form id="form1">
<p:messages id="msgs" showDetail="false" autoUpdate="true" closable="true" />
some input fields with validation
</h:form>
<h:form id="form_upload">
some upload fields that dont trigger validations
</h:form>
<h:form id="buts">
<p:commandButton id="save" value="Save" action="#{bean.save}"
update=":form1 :form1:msgs" process=":form1">
</h:form>
我想按钮保存触发验证的form1,这是可能的吗?
使用属性process
并指定您希望在服务器上处理的每个组件:
<p:commandButton id="save" value="Save" action="#{bean.save}"
process=":form1 :form_upload" update=":form1" />
不要忘记在:form1
的某个地方放一个p:messages
,否则你也想更新它。
在这里阅读更多关于JSF上AJAX的信息
您可以使用PrimeFaces' <p:remoteCommand>
<h:form id="form1">
some input fields with validation
<p:remoteCommand name="rc" update="@form" action="#{bean.save}" />
</h:form>
示例远程调用:
<h:form id="buts">
<p:commandButton value="Save" type="button" onclick="rc()" />
</h>