【问题标题】:JSF 2.x + Spring 3.2 Integration?JSF 2.x + Spring 3.2 集成?
【发布时间】:2013-09-02 20:36:34
【问题描述】:

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

我在 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 与控制器和视图解析器的示例集成,这将有助于许多真正寻求工作的用户。 .

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

【问题讨论】:

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


    【解决方案1】:

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

    Spring - 它有非常好的transactions managementdependency injectionsecurity 和许多其他功能,但是 - 普通的JSF 不提供这种开箱即用的功能,但是 JSF 有非常好的渲染视图的方式。因此,两个框架中的这些功能混合在一起可能会导致简单性。 JSF 有很多基于它的框架,比如:

    在我看来,如果您一直使用JSF,您可以简化您的视图开发。 JSF 有 ManagedBean(s),根据您的配置,它可以满足您的请求,例如 弹簧控制器可以。

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

    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 文件。通常的 spring 配置,没有 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>
    

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

    如果我要从头开始构建一些应用程序,我会选择这两个框架并将它们集成在一起,但这只是我的看法。希望这可以为您解决一些问题。

    【讨论】:

    • 感谢您的回复。但是如何在我已经放入 model.addAttribute("some", someObject);JSF 视图页面中获取值spring 控制器。
    • 你不必再使用spring模型了,你必须使用JSF ManagedBeans。从你的应用程序中抛弃 spring MVC 的东西,使用 JSF 作为控制器层,使用 spring 进行事务管理、依赖注入等。
    【解决方案2】:

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

    看看这些链接:

    【讨论】:

    • 感谢您的快速回复。我可以知道为什么我不应该一起使用它吗?
    • 两者是否可以集成?还有其他选择吗?
    • 但是,在那个例子中他们不使用弹簧控制器。因为在我的应用程序中我需要编写我的业务逻辑?我已经在我的 spring 控制器中完成了业务逻辑。
    • 你想要jsf的哪一部分?
    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 2011-11-20
    • 2011-07-03
    • 2019-05-24
    • 2018-10-21
    • 2020-11-20
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多