JSF + SPRING:Managed Bean始终为null

时间:2016-02-01 03:48:45

标签: java spring spring-mvc jsf jsf-2

我是JSF和Spring集成的初学者。我在一些youtube视频中看过如何开始开发。但我的应用程序非常简单,并始终返回null到托管bean。我使用了inputText,set方法为null。我需要一个会话实现?有什么问题?

XHTML

  <p:outputLabel id="text1" value="Name:" />
   <p:inputText id="teste" value="#{restAction.teste}" />    
   <p:commandButton value="save" actionListener="#{restAction.save}" />

托管Bean

@Named
@ManagedBean
@Scope("session")
public class RestAction {

String teste;

public void save(){

    if(teste != null){
        // ----
    }   
}

public String getTeste() {
    return teste;
}

    public void setTeste(String teste) {
        this.teste = teste;


}

面对配置

<application>
        <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
    </application>

网络配置

    </welcome-file-list>
    <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>/faces/*</url-pattern>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <context-param>
        <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <context-param>
        <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
        <param-value>resources.application</param-value>
    </context-param>
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    </listener>
</web-app>

1 个答案:

答案 0 :(得分:0)

对于JSF,请使用@SessionScoped而不是@Scope("session"),并确保<p:inputText>...<p:commandButton>标记中包含<h:form>。没有它,就不会向服务器发送任何内容供JSF处理。