以下のフォームで保存を押すとinputTextAreaの現在の内容が保存されるのですが、inputTextAreaの内容のプレビューを見たいときは、最後に保存されたメールテンプレートの内容が表示されます。もちろん、(変換後の) textArea の現在の値が表示されます。customMailTemplate の更新された値が表示されないのはなぜですか?
<h:form id="gameMailForm" prependId="false" rendered="#{customizeGameMailBean.renderGameMailPanel}">
<h:panelGrid columns="3">
<h:inputTextarea
styleClass="gameMailTextArea, textArea"
id="gameMailTextArea"
value="#{customizeGameMailBean.customMailTemplate}"
converter="gameMailTemplateConverter"
style="height: 120px; width: 300px; font-size: 11px;">
<f:validator validatorId="gameMailValidator"/>
</h:inputTextarea>
<p:commandButton value="Save"
action="#{customizeGameMailBean.saveMailTemplate}"
ajax="false"/>
<p:commandButton value="Preview"
ajax="true"
action="#{customizeGameMailBean.doNothing}"
oncomplete="javascript: window.open('gameMailPreview.jsp','Game Email','width=300,height=300')"
immediate="true"/>
</h:panelGrid>
</h:form>
gameMailPreview.jsp:
<%@page import="wmc.web.controller.CustomizeGameMailBean"%>
<%@page import="javax.faces.context.FacesContext"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<% CustomizeGameMailBean gameMailBean = (CustomizeGameMailBean) request.getSession().getAttribute("customizeGameMailBean");%>
<%=gameMailBean.getCustomMailPreview()%>
タイミングがおかしいのではないでしょうか?
ちなみにゲーム doNothing は本当に何もしていません。空の void メソッドです。