我的应用程序中有一个页面,用于发送一封电子邮件,其中包含要包含在正文中的用户的详细信息。
电子邮件发送正确,但JSF返回的值为空,我无法弄清楚原因。 框架:Eclipse Kepler,JSF2,Glassfish4。 这是bean代码
import java.util.Date;
import java.util.Properties;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Named;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
@ManagedBean
@SessionScoped
public class SendMail implements java.io.Serializable{
private static final long serialVersionUID = 1L;
private String to = "hamida.12@hotmail.fr";
private String objet = "Compte inaccessible";
private String body= "Mon compte "
+ getNom()
+ " "
+ getPrenom()
+ " n'est plus accessible.Veuillez s'il vous plaît réinitialiser mes cordonnées et les envoyer à mon email "
+ getFrom();
我需要从jsf页面获取的值来自,nom,prenom,我已经创建了他们的getter和setter。这是jsf页面代码
<div id="box" style="height: 197px;">
<h:form id="f1">
<br></br>
<div class="centre">
<p:inputText placeholder="Nom" required="true" id="nom"
value="#{sendMail.nom}"
validator="#{AdministrateurBean.checkAdmin}"></p:inputText>
<h:messages style="color:red" for="nom"/>
</div>
<div class="centre">
<p:inputText placeholder="Prénom" required="true"
value="#{sendMail.prenom}" id="prenom" ></p:inputText>
<h:messages style="color:red" for="prenom"/>
</div>
<div class="centre">
<p:inputText placeholder="xyz@exemple.com" required="true" id="email"></p:inputText>
<h:messages style="color:red" for="email"/>
</div>
<div class="centre">
<p:commandButton value="Envoyer" size="30" style="width:207px"
action="#{sendMail.send}" update="f1" ></p:commandButton>
</div>
</h:form>
</div>
这是我的web.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>Portail</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>delta</param-value>
</context-param>
<!-- keys gotten from recaptcha -->
<context-param>
<param-name>primefaces.PUBLIC_CAPTCHA_KEY</param-name>
<param-value>6Ld7pMESAAAAAHd1VihJkqPUXAJVwU3Cghc8fzrq</param-value>
</context-param>
<context-param>
<param-name>primefaces.PRIVATE_CAPTCHA_KEY</param-name>
<param-value>6Ld7pMESAAAAAMhr5WSk5bcRrff8Y08NtDi8Buoq</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
答案 0 :(得分:1)
我不太确定,你对“从JSF返回的值”是什么意思。我认为你的意思是身体的String变量。在创建辅助bean时创建变量。那时你的所有成员都是空的。您需要在命令按钮的操作方法中构造您的主体。那时你的成员将被JSF框架填充。