我对 primefaces 对话框有一些问题。我有一个上下文菜单。当我单击上下文菜单时,它会显示一个对话框。此对话框包含一个带有所需输入文本的面板。显示对话框时,面板中会显示验证错误,因为输入文本为空。这个想法是仅当用户单击对话框的命令按钮时才显示验证错误。然后,当对话框打开时,它必须被清空。这意味着,没有验证错误,输入文本中也没有任何内容。似乎上下文菜单中的属性更新有问题。一方面,当用户第二次显示对话框时需要清空输入文本,但在第一次显示对话框时也会显示验证错误。
<p:contextMenu for="folderTree">
<p:menuitem value="New Folder" update="addFolderPanel" oncomplete="addFolderDialog.show()" actionListener="#{folderManagedBean.initDialog}" icon="ui-icon-plus"/>
</p:contextMenu>
<p:dialog header="New Folder" widgetVar="addFolderDialog" modal="true" resizable="false"
showEffect="clip" hideEffect="fold">
<p:outputPanel id="addFolderPanel">
<p:message id="defaultMessage" for="txAddFolder"/>
<h:panelGrid columns="2" cellpadding="4">
<h:outputText for="txAddFolder" value="Folder Name: *" />
<p:inputText id="txAddFolder" value="#{folderManagedBean.newFolderName}" required="true" requiredMessage="The field folder name is required."/>
<p:commandButton icon="ui-icon-check" value="OK" update="folderTree" oncomplete="handleDialogClose(xhr, status, args)" actionListener="#{folderManagedBean.addFolder}"/>
</h:panelGrid>
</p:outputPanel>
</p:dialog>
托管bean的代码:
public void initDialog() {
this.newFolderName = "";
RequestContext.getCurrentInstance().reset("form:addFolderPanel");
}
基本上,我想知道为什么对话框在第一次打开时显示验证错误以及如何解决这个问题。
任何帮助将非常感激。