dataTable を使用して、いくつかのレコードを表示します。ユーザーは、actionsDialog という名前のダイアログを使用してレコードを追加/変更できます。レコードを保存する前に、reasonDialog と呼ばれるモーダル ダイアログが表示され、ユーザーは現在の操作の理由を入力する必要があります。私のロジックでは、データがデータベースに保存された後、理由を null に設定しました。
操作を繰り返すと問題が発生します。理由には以前の値が含まれています。コードをデバッグしたところ、inputTextarea のローカル値が理由として割り当てられているためにこの問題が発生していることに気付きました。ローカル値を削除するにはどうすればよいですか? PrimeFaces 3.0、Mojara 2.0.4、Tomcat 7 を使用しています。
私の理由ダイアログのフェイスレットは次のとおりです。
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<p:dialog header="#{label.reason}" widgetVar="reasonDialog"
showEffect="fade" hideEffect="explode" modal="true" dynamic="true">
<h:panelGrid columns="2">
<p:inputTextarea rows="5" cols="40" autoResize="false"
value="#{recordsBean.reason}" maxLength="1024" />
<f:facet name="footer">
<p:outputPanel layout="block">
<p:commandButton value="ok" update="genericRecords msgs"
action="#{recordsBean.execute}"
oncomplete="reasonDialog.hide();actionsDialog.hide()" />
</p:outputPanel>
</f:facet>
</h:panelGrid>
</p:dialog>
</ui:composition>
アクション ダイアログは次のようになります。
<p:dialog id="actionsDialog" widgetVar="actionsDialog" dynamic="true"
resizable="false" height="600" showEffect="fade" hideEffect="fade" modal="true">
<ui:include src="/WEB-INF/flows/genericRecord.xhtml"/>
<f:facet name="footer">
<p:outputPanel layout="block">
<p:commandButton value="save" onclick="reasonDialog.show()" />
<p:commandButton value="cancel" immediate="true"
oncomplete="actionsDialog.hide()" />
</p:outputPanel>
</f:facet>
</p:dialog>