对于我的学校项目,我必须实现一个迷你网站,我使用primefaces框架。在按下“保存”按钮后,我想要一种形式: 1 - 验证输入的数据。这就是我放
的原因<p:message for="date" /> and <p:message for="zone" />
由于值不正确,因此不应显示对话框。 2 - 当所有数据都正确时,我单击“保存”,我想显示我的对话框。
现在我做不到。你能帮助我吗?我使用的是版本4的表面。
<h:form>
<p:panel id="panel" header="Create" style="margin-bottom:10px;border-color:blueviolet" >
<p:messages id="messages" />
<h:panelGrid columns="3">
<h:outputLabel for="date" value="Date : *" />
<p:calendar locale="fr" id="date" value="#{newBusinessCtrl.exercice.debut}" required="true" label="date" showButtonPanel="true"/>
<p:message for="date" />
<h:outputLabel for="zone" value="Zone Monétaire: *" />
<p:selectOneMenu id="zone" value="#{newBusinessCtrl.exercice.zoneChoice}" >
<f:selectItem itemLabel="Choice " itemValue="" />
<f:selectItems value="#{newBusinessCtrl.exercice.zones}" var="azone"
itemLabel="#{azone}" itemValue="#{azone}" >
</f:selectItems>
<p:message for="zone" />
</p:selectOneMenu>
<p:message for="zone" />
</h:panelGrid>
</p:panel>
<p:commandButton update="panel" value="Save" icon="ui-icon-check" style="color:blueviolet" onclick="choice.show()"/>
<p:confirmDialog message="Would you like to create accounts automatically ?"
header="Account creation" severity="alert"
widgetVar="choice" appendTo="@(body)">
<p:button outcome="personalizeAccount" value="Personalize" icon="ui-icon-star" />
<p:button outcome="autoAccount" value="Continue" icon="ui-icon-star" />
</p:confirmDialog>
答案 0 :(得分:0)
只需在Backing Bean中显示对话框,如下所示:
网页:强>
<p:commandButton update="panel" value="Save"
icon="ui-icon-check"
style="color:blueviolet"
action="#{newBusinessCtrl.showDlg('choice')}"/>
支持Bean:
public void showDlg(String dlgName){
RequestContext.getCurrentInstance().execute(dlgName+".show()");
}
验证失败后,操作将不会执行,因此对话框不会显示。
答案 1 :(得分:0)
如果验证没有失败。 PrimeFaces在JavaScript范围中放置一个全局args对象,该范围又具有布尔validationFailed属性。你可以在显示对话框之前检查它所以你可以这样使用它:
<p:commandButton value="save" oncomplete="if (args && !args.validationFailed) saveDialog.show()"/>