2

很抱歉问这个问题,它可能是堆栈溢出中其他类似线程的重复。那些类似的线程在我的情况下不起作用。

我在spring 3.2中有足够的知识,并在spring完成了一个小项目。

现在我是JSF的新手,我创建了一些基本的 JSF 示例。我想将这些JSF特性及其components用于我的新Spring + JSF项目。

我为JSF + Spring Integration提供的链接如下,

http://papweb.wordpress.com/2011/07/29/spring-mvc-3-jsf-2-with-maven-2-and-tomcat/

http://blog.terrencemiao.com/archives/spring-3-shacks-up-jsf-2-the-maverick-way

我找到的资源对我没有帮助,那是很的帖子。

任何人都可以为我提供带有控制器和视图解析器的 JSF 2.X + Spring 3.x MVC的示例集成,这将帮助很多真正寻求工作的用户..

希望我们的堆栈用户能帮助我。

4

2 回答 2

6

在我看来,SpringJSF- 两者都可以很好地使用。当然,这主要取决于您使用这些框架的要求和偏好。

Spring——它有很好的事务管理依赖注入安全性和许多其他特性,然而——plainJSF没有提供这种开箱即用的特性,但是 JSF 有很好的呈现视图的方式。因此,两个框架中的这些功能混合在一起可能会导致简单性。JSF 有多种基于它构建的框架,例如:

在我看来,如果您一直使用JSF. JSF 有ManagedBean (s),它根据您的配置为您的请求提供服务,就像 Spring 控制器一样。

实际配置非常简单。你需要有:

faces-config.xml包含SpringBeanFacesELResolver 的文件:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
              version="2.0">

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

    <navigation-rule>
        <!-- your rules here -->
    </navigation-rule>

</faces-config>

弹簧applicationCotext.xml文件。通常的弹簧配置,没有什么JSF特别的。

web.xml应该看起来像这样:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <!-- other config -->

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

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Production</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</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>*.xhtml</url-pattern>
    </servlet-mapping>

    <!-- other of config -->

</web-app>

最酷的东西JSFView Scope,如果你一直使用JSFwith ,它会默认丢失Spring,但绝对不想丢失它。解释了如何使 View Scope 工作JSFSpring集成。

如果我要从头开始构建一些应用程序,我会选择这两个框架并将它们集成在一起,但这只是我的看法。希望这能为你清除一些事情。

于 2013-09-04T22:05:37.707 回答
5

首先:您不应该同时使用 JSF 和 Spring MVC,因为它们相互竞争!(这是我的看法!)

看看这些链接:

于 2013-09-02T09:06:09.937 回答