sendmail 機能を備えたページがあります。シンプルなリッチテキストフィールドで、送信ボタンを押すとテキストフィールドを本文にしてメールが送信されます。これは機能します。しかし、ユーザーがメールが送信されたことを確認できるように、「メール送信」というメッセージを表示したいと考えています。次を実行することでそれを行うことができます:
addFacesMessage(FacesMessage.SEVERITY_INFO, getMsg("common_mail_send_ok") + " (" + toAddresses[0] + ")");
このメッセージはフィールドに表示されます。しかし、これは私のページのまったく別の部分にあるため、richtextfield に関連付けられたフィールドにメッセージを表示したいと考えています。以下を試しましたが、メッセージもエラーも表示されません。
これは私のjsfです
<h:messages id="mainmessages" globalOnly="true" styleClass="info" errorClass="error" />
...
<p:fieldset id="emailPanel" toggleable="true" collapsed="true" style="width:800px;">
<h:outputText value="#{msg.workorderdetail_message}:"/>
<p:editor id="mailbody" value="#{workOrderDetail.message}" widgetVar="editor" width="500" height="200"/>
<p:commandButton styleClass="button" process="emailPanel" update="emailPanel mailmessage mainmessages" value="#{msg.workorderdetail_sendemail}" actionListener="#{workOrderDetail.sendMail}" onstart="busyPopup.show()" oncomplete="busyPopup.hide()"/>
<h:message id="mailmessage" for="mailbody" styleClass="info" errorClass="error"/>
</p:fieldset>
これが私のクラスです
public String sendMail() throws Exception {
....
mailer.send();
FacesContext.getCurrentInstance().addMessage(
"detail:wodetail:mailbody",
new FacesMessage(FacesMessage.SEVERITY_INFO,
getMsg("common_mail_send_ok") + " (" + toAddresses[0] + ")", getMsg("common_mail_send_ok") + " ("
+ toAddresses[0] + ")"));
addFacesMessage(FacesMessage.SEVERITY_INFO, getMsg("common_mail_send_ok") + " (" + toAddresses[0] + ")");
...
}
何が間違っているのかわかりません。これは過去に機能していたと思います.開発中に、エラーメッセージがキューに追加されたというメッセージが表示されることもありましたが、表示できませんでした(メッセージフィールドが再レンダリングされなかったため)しかし、現在(prime3の新しいバージョン.4.2) 何も得られません。