gpt4 book ai didi

java - 在 JSF 中显示 FacesMessage 并重新加载页面

转载 作者:行者123 更新时间:2023-11-29 03:21:42 24 4
gpt4 key购买 nike

我正在从 JSF 应用程序发送电子邮件。我需要它,这样当我发送电子邮件时,会显示 FacesMessage 以确认操作,并且浏览器会重新加载到同一页面。我的代码显示了人脸,但没有重新加载同一页面。

public String sendEmail(){
//Email Sending Code.....
Transport.send(message);

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Successfull\n", "You have successfully sent an e-mail to : " + e_mail + ". \n Thank You"));

return "Email?redirect-true";
}

这是我尝试过的,此代码重新加载页面但未显示 FacesMessage。

public String sendEmail(){
//Email Sending Code.....
Transport.send(message);

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Successfull\n", "You have successfully sent an e-mail to : " + e_mail + ". \n Thank You"));
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest origRequest = (HttpServletRequest) context.getExternalContext().getRequest();
String contextPath = origRequest.getContextPath();
FacesContext.getCurrentInstance().getExternalContext().redirect(contextPath + "/faces/Email.xhtml");
return "Email?redirect-true";
}

这是我发送电子邮件页面的代码:

    <h:form >
<p:growl id="growl" showDetail="true"/>
<p:panel header="Send Email" style=" width: 70%">
<h:panelGrid columns="2">
<h:outputLabel value="E Mail Address: " />
<h:inputText value="#{mailing.e_mail}" style="width: 400px"/>

<h:outputText value="Subject: " />
<h:inputText value="#{mailing.subject}" style="width: 400px"/>

<h:outputText value="Message: " />
<h:inputTextarea value="#{mailing.mess}" style="height: 300px;width: 700px"/>
<h:panelGroup/>
<p:commandButton
value="Send Mail "
action="#{mailing.sendEmail()}"
ajax="false"/>
</h:panelGrid>
</p:panel>
</h:form>

请帮忙

最佳答案

你应该设置keepMessages to trueFlash 上如果你想在重定向中保留 FacesMessages 对象。 Flash 范围是 JSF2 中引入的新范围。作用域(以及随附的隐式 EL 对象 flash)用于短期“内容”存储(意思是您想要短期保留的任何内容)。

在重定向之前尝试以下行:

   FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);

上面的行设置了必要的标志以确保您的消息被保留。

进一步阅读:

关于java - 在 JSF 中显示 FacesMessage 并重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com