2

我想将jsf与spring集成。当我在 faces 配置文件中插入应用程序标记并在 web.xml 文件中使用上下文加载器侦听器时,它显示“请求的资源 (/SampleWeb/faces/registration.xhtml) 不可用。” 这是我的面孔配置文件:

<faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">

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

    <managed-bean>
        <managed-bean-name>empbean</managed-bean-name>
        <managed-bean-class>com.java.EmployeeBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>employeeBo</property-name>
            <value>#{employeeBo}</value>
        </managed-property>
    </managed-bean>

    <managed-bean>
        <managed-bean-name>employeeBo</managed-bean-name>
        <managed-bean-class>com.java.EmployeeBOImpl</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>employeeDto</property-name>
            <value>#{employeeDto}</value>
        </managed-property>
    </managed-bean>

    <navigation-rule>
        <display-name>registration.xhtml</display-name>
        <from-view-id>/registration.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>register</from-outcome>
            <to-view-id>/welcome.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>

</faces-config>

这是 web.xml 文件:

  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <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>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <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>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
4

1 回答 1

0

每当您尝试将 Spring 与 JSF 或 Struts 集成时,都需要添加 RequestContextListener 作为侦听器

<listener> 
  <listener-class> 
     org.springframework.web.context.request.RequestContextListener
  </listener-class> 
</listener>
于 2016-02-10T05:10:51.943 回答