我有一个带有 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] + ")");
...
}
我不知道我做错了什么。我认为这在过去可以工作,我什至有时在开发时收到消息说一些错误消息已添加到 que,但无法显示(因为消息字段未重新呈现)但现在(更新版本的 prime3 .4.2) 我什么也得不到。