ダイアログを開くメニューを取得しました (primefaces 3.5)
<h:form>
<p:graphicImage id="img" value="../resources/img/user.jpg" style="cursor:pointer" title="My Profile" height="70px"/>
<p:overlayPanel id="imgPanel" for="img" showEffect="blind" hideEffect="fade" showEvent="mouseover" hideEvent="fade">
<h:outputLink id="editLink" value="javascript:void(0)" onclick="profiledlg.show()" title="login">Edit profile</h:outputLink><br />
<h:outputLink id="loginLink" value="javascript:void(0)" onclick="passwddlg.show()" title="login">Change password</h:outputLink><br />
<p:commandLink action="#{authBackingBean.logout}" value="Logout" />
</p:overlayPanel>
</h:form>
ダイアログは次のようになります。
<h:form id="profiledialogform">
<p:dialog id="profiledialog" header="Edit profile" widgetVar="profiledlg" resizable="false">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="email" value="Email:" />
<p:inputText value="#{editProfileBean.newEmail}"
id="email" required="true" label="email" />
<f:facet name="footer">
<p:commandButton id="editProfileButton" value="Edit profile"
actionListener="#{editProfileBean.editProfile}" oncomplete="profiledlg.hide()" update=":profiledialogform" >
<p:resetInput target=":profiledialogform" />
</p:commandButton>
</f:facet>
</h:panelGrid>
</p:dialog>
</h:form>
初めて使用するときは意図したとおりに機能しますが、2 回目 (またはそれ以上) に別の電子メールを入力してボタンをクリックすると、ダイアログは閉じますが、メソッドは呼び出されません。手動でページを更新した場合のみ (F5 )。
Bean は @RequestScoped です
editProfile メソッドの最後で、newEmail の値を "" (空の文字列) に設定しました。
何か言いたいことはありますか?