`
sharkl
  • 浏览: 40858 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类

Spring MVC 中如何设置使用多视图解析器--JSP与FreeMarker

阅读更多

首先是在Web.xml 中配置请求分法器 代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <!-- ======================================================== -->
    <!--                  Spring MVC Config Servlet               -->
    <!-- ======================================================== -->
    <!-- JSP DispatcherServlet -->
    <servlet>
        <servlet-name>jspdpt</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- FreeMarker DispatcherServlet -->
    <servlet>
        <servlet-name>ftldpt</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- ======================================================== -->
    <!--                  Spring MVC Config Mapping               -->
    <!-- ======================================================== -->
    <servlet-mapping>
        <servlet-name>jspdpt</servlet-name>
        <url-pattern>*.view</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>ftldpt</servlet-name>
        <url-pattern>*.ftl</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

    <jsp-config>
        <taglib>
            <taglib-uri>/spring</taglib-uri>
            <taglib-location>/WEB-INF/spring.tld</taglib-location>
        </taglib>
    </jsp-config>
</web-app>
然后为不同的servlet 映射编写不同的Spring IOC 容器:
<?xml version="1.0" encoding="GB2312"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">

    <!-- ===================================================== -->
    <!--           ViewResolver For FreeMarker                 -->
    <!-- ===================================================== -->
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="cache">
            <value>true</value>
        </property>
        <property name="suffix">
            <value>.ftl</value>
        </property>
        <property name="exposeRequestAttributes">
            <value>true</value>
        </property>
        <property name="exposeSessionAttributes">
            <value>true</value>
        </property>
        <property name="exposeSpringMacroHelpers">
            <value>true</value>
        </property>
        <property name="contentType">
            <value>text/html; charset=GB2312</value>
        </property>
    </bean>
    <!-- ===================================================== -->
    <!--    ViewResolver For FreeMarkerConfigurer              -->
    <!-- ===================================================== -->
    <bean id="freemarkerConfig"
        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath">
            <value>/WEB-INF/FTL/</value>
        </property>
        <property name="defaultEncoding">
            <value>GB2312</value>
        </property>
        <property name="freemarkerSettings">
            <props>
                <prop key="template_update_delay">3600</prop>
            </props>
        </property>
    </bean>

    <bean id="welcomeController" class="sprinl.mvc.WelcomeController">
        <property name="viewName">
            <value>welcome</value>
        </property>
    </bean>

    <bean id="simpleUrlHandlerMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/welcome.ftl">welcomeController</prop>
            </props>
        </property>
    </bean>
</beans>
以及
<?xml version="1.0" encoding="GB2312"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">

    <!-- ===================================================== -->
    <!--                 ViewResolver For JSP                  -->
    <!-- ===================================================== -->
    <bean id="JSPViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="divfix">
            <value>/WEB-INF/JSP/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

    <bean id="IndexController" class="sprinl.mvc.IndexController">
        <property name="messages">
            <value>
我的第一个Spring-View 例子-- 要给我鼓励</value>
        </property>
        <property name="page">
            <value>home</value>
        </property>
    </bean>

    <bean id="divsonController" class="sprinl.mvc.PresonController">
        <property name="page">
            <value>divson</value>
        </property>
    </bean>

    <bean id="simpleUrlHandlerMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/home.view">IndexController</prop>
                <prop key="/divson.view">divsonController</prop>
            </props>
        </property>
    </bean>
</beans>

通过上述代码 就可以实现JSP 以及FreeMarker 的合作工作,前提条件是根据後最名称来进行请求的分发

分享到:
评论

相关推荐

    Spring MVC--5.视图和视图解析器

    在Spring MVC框架中,视图和视图解析器是实现MVC模式中“V”(View)部分的关键组件。它们负责将处理完的数据转化为用户可以理解的格式,并展示在浏览器上。视图解析器则是连接控制器与视图的桥梁,它负责根据返回的...

    Spring配置Freemarker视图解析器,配置多个视图解析器

    本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解如何配置单个Freemarker视图解析器。在Spring的配置文件(如`...

    spring-webmvc-5.0.9 jar包、源码和javadoc

    《Spring Web MVC 5.0.9:深度解析与应用》 Spring Web MVC是Spring框架的核心模块之一,专为构建Web应用程序提供模型-视图-控制器(MVC)架构支持。在Spring 5.0.9这个版本中,它延续了Spring对开发者友好、灵活且...

    Spring MVC step-by-step 源码

    - 视图解析器根据ModelAndView中的视图名找到具体视图(如JSP),并将模型数据填充到request域中。 - 最后,服务器将渲染后的视图响应给客户端。 5. **注解驱动开发**: - 在Spring MVC 3.0以后,可以使用注解如...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    总之,“Spring MVC - A Tutorial”这份指南会详细讲解Spring MVC的各个核心组件和使用技巧,包括控制器的创建、模型数据的管理、视图的渲染、以及各种高级特性。通过学习,开发者可以熟练地运用Spring MVC来构建...

    spring-mvc-官方中文文档

    8. **视图解析**:Spring MVC 支持多种视图技术,如 JSP、FreeMarker、Thymeleaf 等。视图解析器(ViewResolver)会根据指定的视图名和前缀/后缀来生成实际视图的全路径。 9. **数据绑定**:Spring MVC 自动支持...

    最全最经典spring-mvc教程

    视图解析器(ViewResolver)根据指定的逻辑视图名查找物理视图,常见的视图技术有JSP、Thymeleaf、FreeMarker等。 Spring MVC还支持数据绑定,自动将请求参数绑定到Java对象,这极大地简化了表单提交的处理。对于...

    spring mvc step by step,例子

    5. **配置视图**:设置视图解析器,例如,使用`InternalResourceViewResolver`来解析JSP视图。定义视图名与实际页面路径的映射关系。 6. **编写视图**:在JSP页面中使用EL(Expression Language)和JSTL标签来展示...

    spring-mvc-showcase

    Spring MVC提供多种视图解析器,如InternalResourceViewResolver用于处理JSP视图,VelocityViewResolver处理Velocity模板等。 六、Form标签与数据绑定 Spring MVC提供了丰富的表单标签库,如、等,简化了表单元素...

    spring-mvc-demo

    在本示例 "spring-mvc-demo" 中,我们将探讨 Spring MVC 的核心概念、配置、控制器、视图解析以及如何与数据库进行交互。 1. **核心概念** - **DispatcherServlet**:Spring MVC 的入口点,负责处理所有的 HTTP ...

    spring mvc 4.0

    7. **视图解析**:Spring MVC 4.0支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,视图解析器可以根据配置自动选择合适的视图技术。 8. **异步处理**:Spring MVC 4.0引入了异步请求处理,通过@...

    Mastering Spring MVC 4(2015.09)源码

    Spring MVC支持多种视图技术,如JSP、FreeMarker或Thymeleaf,开发者可以根据项目需求选择合适的视图解析器。 视图解析器是Spring MVC中用于确定视图名对应的实际资源路径的组件。例如,...

    Spring MVC 简单Demo

    - 在Spring MVC配置文件中声明处理器映射器、视图解析器、以及自定义的控制器等。 4. **创建简单示例** 在这个"Spring MVC 简单Demo"中,我们可能有一个名为`SummerWeb`的目录,其中包含以下文件: - `web.xml`...

    spring MVC中文教程

    - **配置文件**:通常使用XML或注解来配置Spring MVC,例如设置视图解析器、定义控制器映射规则等。 - **启用Spring MVC**:可以通过在web.xml中配置DispatcherServlet来启动Spring MVC。 #### 六、Spring MVC的...

    Spring MVC 4.2.4.RELEASE 中文文档

    Spring MVC与多种模板引擎(如FreeMarker、Thymeleaf、JSP等)无缝集成,方便创建动态网页。 **10. 国际化支持** Spring MVC提供国际化功能,允许根据用户的语言偏好显示不同语言的内容。 由于这是一个非正式版本...

    spring-MVC.zip_Java spring mvc_spring mvc_spring mvc

    4. **View**:视图是用户界面,Spring MVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。视图解析器会根据ModelAndView中的信息来决定渲染哪个视图。 5. **ViewModel**:模型视图,是Model和View的组合,它...

    SpringMVC自定义多视图

    Spring MVC默认提供了一些视图解析器,如InternalResourceViewResolver用于处理JSP视图,而JsonViewResolver可以处理JSON响应。但为了实现自定义多视图,我们可能需要创建自己的视图解析器或者扩展现有的。 例如,...

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    视图通常由模板引擎(如JSP、Thymeleaf或Freemarker)渲染,Spring MVC提供了ModelAndView或者Model接口来管理模型数据。 总的来说,Spring Web和Spring Web MVC是Spring框架的重要组件,它们为Java Web开发提供了...

    spring MVC简单示例

    这个"spring MVC简单示例"是为了帮助初学者理解Spring MVC的基本工作原理和配置,通过实践这个例子,你可以了解到如何创建一个简单的Controller、配置视图解析器并建立一个基本的请求处理流程。随着对Spring MVC的...

Global site tag (gtag.js) - Google Analytics