Primefacesダイアログに問題があります。コンテキストメニューがあります。コンテキストメニューをクリックすると、ダイアログが表示されます。このダイアログには、必要な入力テキストを含むパネルが含まれています。ダイアログが表示されると、入力テキストが空であるため、検証エラーがパネルに表示されます。アイデアは、ユーザーがダイアログのcommandButtonをクリックしたときにのみ検証エラーを表示することです。次に、ダイアログを開いたときに、ダイアログを空にする必要があります。つまり、検証エラーはなく、入力テキストにも何もありません。コンテキストメニューの属性更新に問題があるようです。一方では、ユーザーがダイアログを2回目に表示するときに入力テキストを空にする必要がありますが、ダイアログを最初に表示するときに検証エラーも表示されます。
<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");
}
基本的に、ダイアログを最初に開いたときに検証エラーが表示される理由と、この問題を解決する方法を知りたいと思います。
どんな助けでも本当にありがたいです。