JSF页面返回空值

时间:2014-01-16 19:40:29

标签: jsf-2 primefaces

我的应用程序中有一个页面,用于发送一封电子邮件,其中包含要包含在正文中的用户的详细信息。

电子邮件发送正确,但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>

1 个答案:

答案 0 :(得分:1)

我不太确定,你对“从JSF返回的值”是什么意思。我认为你的意思是身体的String变量。在创建辅助bean时创建变量。那时你的所有成员都是空的。您需要在命令按钮的操作方法中构造您的主体。那时你的成员将被JSF框架填充。