支持bean

时间:2017-02-15 07:56:36

标签: java ajax jsf primefaces xhtml

我需要一些帮助,同时将消息设置为来自辅助bean的faces context, 我的页面设计布局如下。它还使用了所有页面的通用布局。

ContactUs.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="#{language.layout}"> //CommonLayout.xhtml //common template
<ui:define name="content">

<div class="input-cont">
<h:form styleClass="login-form">
<h:messages errorClass="error medium" layout="table" />
<p:inputText value="#{customerBean.contactUsDTO.email}"
        id="useremail" name="useremail" type="email"
            styleClass="input-text" placeholder="Email" />

<p:inputTextarea value="#{customerBean.contactUsDTO.comments}"
name="txtFeedback" id="txtFeedback"
styleClass="input-text comment-area" placeholder="Comments"</p:inputTextarea>

<div class="btn-cont labels-to-inputs">
<h:commandLink action="#{customerBean.contactUs}"
styleClass="next-btn login-btn ord-btn">Submit</h:commandLink>
</div>
</h:form>

CommonLayout.xhtml 如下

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:p="http://primefaces.org/ui"
    >


<f:view locale="#{language.locale}">  
<h:head>

 <h:body>
     <div class="container">
<ui:insert name="leftNav"> <!-- Left Navigation -->
                        <ui:include src="commonLeft.xhtml" />
                    </ui:insert>

                 <div id="content"> <!-- External Page Contents Starts -->
                    <ui:insert name="content">

                    </ui:insert>
                </div>  <!-- External Page Contents Ends -->
</div>
</h:body>
 </f:view>
</html>

ContactBean.java 此bean是facesconfig.xml文件下的会话范围

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

public class ContactBean{

public String contactUs() {
    String response="success" //Testing purpose
    if(!response.equalsIgnoreCase("success")){
                    {raiseError("Service is temporarily unavailable, Try again later");


                    }
                    System.out.println("Response from email is  "+response);
                }
                else if(response.equalsIgnoreCase("success")){
                    System.out.println("Response from email is  "+response);
                    {raiseInfo("Thanks for gettting in touch with Us, We will contact you soon");

                    }

                }
}
    return "ContactUs";

}

public void raiseError(String msgText){
    FacesContext fc = FacesContext.getCurrentInstance();
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msgText, msgText);
    fc.addMessage(null, msg);
}//raiseError

public void raiseInfo(String infoMsg){
    FacesContext fc = FacesContext.getCurrentInstance();
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, infoMsg, infoMsg);
    fc.addMessage(null, msg);

}//raiseError

}

此raiseInfo和rasieError消息在将那些作为新消息对象添加到faces上下文之后,没有向该联系表单页面显示任何消息,它没有显示。可能发生的错误可能是什么。

2 个答案:

答案 0 :(得分:0)

正如@ArgaPK正确指出的那样,你错过了终止第一个字符串参数并在下面调用contactUs方法中的raiseError时启动第二个字符串参数,而不是2个参数它是一个字符串,因此错误: raiseError(“服务暂时不可用,稍后再试”);

应该是编译时错误。

答案 1 :(得分:0)

找到解决方案:  您必须在xhtml表单中添加'<name:\w+>' => 'site/attraction' 标记。

<p:growl>