`

Spring3 MVC 怎么配置同时使用多视图

 
阅读更多
最近开始学习Spring3 MVC Restful,视图采用了jsp和freemarker,分别放在/WEB-INF/JSP和/WEB-INF/FTL文件夹下。使用spring MVC时之返回视图的字符串名称,怎么让它知道这个名称是对应jsp文件夹下还是ftl文件夹下的呢?
在Controller中进行转发时如何处理?
我用的是Spring3中的注解@Controller,然后在调用的方法中只返回字符串(如“success”),那么Spring3是如何确定是转到"/WEB-INF/JSP/success.jsp",还是“/WEB-INF/FTL/success.ftl”呢?
如果可以确定,那又是如何配置呢?
    <context:component-scan base-package="com.spring" />  
    <bean id="freemarkerViewResolver"  
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
            <property name="order" value="1" />  
            <property name="prefix" value="/freemarker/" />  
            <property name="suffix" value=".ftl" />  
            <property name="contentType" value="text/html;charset=utf-8" />  
            <property name="viewClass">  
                <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>  
            </property>  
        </bean>  
      
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">   
            <property name="order" value="2" />  
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />  
             <property name="prefix" value="/WEB-INF/jsp/" />   
             <property name="suffix" value=".jsp"></property>   
        </bean>  
      
    <bean  
            class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
            <property name="templateLoaderPath" value="/WEB-INF" />  
            <property name="defaultEncoding" value="UTF-8" />  
    </bean>  

    @RequestMapping(value="/student")  
        protected ModelAndView freemaker() {  
            Student stu1=new Student();  
            stu1.setName("gaoxiang1");  
            stu1.setSex("male1");  
            Student stu2=new Student();  
            stu2.setName("gaoxiang2");  
            stu2.setSex("male2");  
            List a=new ArrayList();  
            a.add(stu1);  
            a.add(stu2);   
            return new ModelAndView("user/student","studentList",a);  
       }  

使用视图链 首先会去找 user/student.ftl 如果找不到就会去找 user/student.jsp


1.首先在web.xml,配置多个Dispatcher,不同视图当然转发不一样!

web.xml
Java代码

   1. <servlet-name>fm</servlet-name>
   2.       <servlet-class>
   3.         org.springframework.web.servlet.DispatcherServlet
   4.       </servlet-class>
   5.       <load-on-startup>1</load-on-startup>
   6.     </servlet>       
   7.     <servlet-mapping>
   8.       <servlet-name>jstl</servlet-name>
   9.       <url-pattern>/*.do</url-pattern>
  10.     </servlet-mapping>       
  11.     <servlet-mapping>
  12.       <servlet-name>fm</servlet-name>
  13.       <url-pattern>/*.fm</url-pattern>
  14.     </servlet-mapping>
  15.     <servlet>

<servlet-name>fm</servlet-name>
  <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>  
<servlet-mapping>
  <servlet-name>jstl</servlet-name>
  <url-pattern>/*.do</url-pattern>
</servlet-mapping>  
<servlet-mapping>
  <servlet-name>fm</servlet-name>
  <url-pattern>/*.fm</url-pattern>
</servlet-mapping>
<servlet>



2.然后再配置*-servlet文件

jstl-servlet.xml
Java代码

   1. <?xml version="1.0" encoding="UTF-8"?>
   2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
   3. <beans>
   4.     <bean id="simpleUrlHandlerMapping"  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
   5.         <property name="mappings">
   6.             <props>
   7.                 <prop key="/hello.do">showCon</prop>
   8.            </props>
   9.        </property>
  10.     </bean>
  11.   <bean name="showCon"   class="test.mvc.web.ShowController"/> 
  12.   <bean id="viewResolver"
  13.     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  14.     <property name="prefix"><value>/WEB-INF/template/jsp/</value></property>
  15.     <property name="suffix"><value>.jsp</value></property>
  16.     <property name="viewClass">
  17.       <value>org.springframework.web.servlet.view.JstlView</value>
  18.     </property>
  19.   </bean>  
  20. </beans>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="simpleUrlHandlerMapping"  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/hello.do">showCon</prop>
           </props>
       </property>
    </bean>
  <bean name="showCon"   class="test.mvc.web.ShowController"/>
  <bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix"><value>/WEB-INF/template/jsp/</value></property>
    <property name="suffix"><value>.jsp</value></property>
    <property name="viewClass">
      <value>org.springframework.web.servlet.view.JstlView</value>
    </property>
  </bean>
</beans>



fm-servlet.xml
Java代码

   1. <?xml version="1.0" encoding="UTF-8"?>
   2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
   3. <beans>
   4.     <bean id="simpleUrlHandlerMapping"  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
   5.         <property name="mappings">
   6.             <props>
   7.                 <prop key="/hello.fm">showCon</prop>
   8.            </props>
   9.        </property>
  10.     </bean>
  11.     <bean name="showCon"   class="test.mvc.web.ShowController"/>    
  12.     <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
  13.      <property name="suffix"><value>.fm</value></property>
  14.       <property name="viewClass">
  15.        <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
  16.       </property>
  17.       <property name="contentType"><value>text/html; charset=gb2312</value></property>
  18.     </bean>  
  19. </beans>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="simpleUrlHandlerMapping"  class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/hello.fm">showCon</prop>
           </props>
       </property>
    </bean>
<bean name="showCon"   class="test.mvc.web.ShowController"/>  
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix"><value>.fm</value></property>
  <property name="viewClass">
   <value>org.springframework.web.servlet.view.freemarker.FreeMarkerView</value>
  </property>
  <property name="contentType"><value>text/html; charset=gb2312</value></property>
</bean>
</beans>


两个视图都调用test.mvc.web.ShowController,所以即使全部换了视图层,也不影响到控制层的东西,这就是spring MVC强大之一!
分享到:
评论

相关推荐

    spring MVC配置详解

    Spring MVC 配置详解 Spring MVC 是一个基于 DispatcherServlet 的 MVC 框架,它是当前主流的 Web 框架之一。要想灵活运用 Spring MVC 来应对大多数的 Web 开发,就必须要掌握它的配置及原理。 一、Spring MVC ...

    Spring3 MVC 深入研究

    Spring3 MVC是Spring框架的重要组成部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)框架。本篇文章将深入探讨Spring3 MVC的核心概念、工作原理以及如何在实际项目中应用。 一、Spring3 MVC...

    spring3MVC 框架demo

    在Spring3MVC中,文件上传通常使用`CommonsMultipartResolver`解析器来处理多部分请求。你需要在`servlet-context.xml`中配置它,并在Controller中定义处理文件上传的接口。`MultipartFile`是Spring提供的接口,用于...

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

    此外,Spring MVC还提供了一些高级特性,如ModelAndView对象,它允许控制器同时返回视图名和模型数据。另外,还有RedirectView和ForwardView等特殊视图,它们可以直接处理重定向和转发操作,简化了开发过程。 总的...

    最全最经典spring-mvc教程

    除此之外,教程可能还会涵盖Spring MVC的RESTful API设计,如何创建JSON响应,以及使用Spring Boot快速构建Spring MVC应用。Spring Boot简化了配置,提供了预配置的依赖,使得开发者能更快地启动项目。 错误处理和...

    spring3mvc导入包

    对于视图解析,Spring MVC通常与模板引擎结合使用,如JSP、FreeMarker或Thymeleaf。这可能需要`jsp-api.jar`(如果你使用JSP)和其他模板引擎对应的库。 此外,Spring3MVC还常常与Spring的其他模块集成,比如`...

    Spring3 MVC 基础学习手册

    在本文中,我们将深入探讨Spring3 MVC的基础配置、注解使用以及核心概念。 一、Spring3 MVC基本配置 1. **web.xml配置** 在web应用的部署描述符`web.xml`中,我们需要配置一个名为`DispatcherServlet`的Servlet。...

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

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

    spring3 mvc实例

    在本实例中,我们将会探讨Spring3 MVC的核心特性、配置、控制器、视图解析以及如何通过实际的代码示例来理解和应用这些概念。 1. **核心特性** - **依赖注入(DI)**:Spring3 MVC支持依赖注入,允许开发者解耦...

    Spring Web MVC外文翻译

    - **使用 Spring 配置**:DispatcherServlet 使用 Spring 配置来发现处理请求映射、视图解析、异常处理等所需的委托组件。 ##### 2.3 上下文层次结构 - **WebApplicationContext**:DispatcherServlet 需要一个 `...

    Spring3 MVC 实例

    5. **配置(Configuration)**:在Spring3中,配置文件通常采用XML,但也可以使用基于注解的配置。`@EnableWebMvc`注解开启Spring MVC的功能,`@ComponentScan`注解扫描包含控制器和服务的包。 6. **...

    SPRING MVC配置过程

    SPRING MVC 是一个基于 DispatcherServlet 的 MVC 框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet 负责转发每一个 Request 请求给相应的 Handler,Handler 处理以后再返回相应的视图(View)和...

    spring3.0 MVC中文教程

    5. **第5部分:Spring 3 MVC的国际化与本地化教程** - 讨论如何使用Spring MVC提供的国际化支持来构建多语言应用程序。 6. **第6部分:Spring 3 MVC主题皮肤使用示例教程** - 展示如何使用Spring MVC提供的主题支持...

    Spring3.0 MVC配置教程

    Spring 3.0 MVC配置教程 Spring MVC是Spring框架的一部分,专门...同时,随着Spring框架的不断发展,Spring Boot简化了这些配置,使得Spring MVC的使用更加便捷。然而,理解基本配置对于深入学习Spring框架至关重要。

    Spring3mvc和hibernate整合示例代码.zip

    Spring3 MVC 和 Hibernate 是两个非常重要的 Java 开发框架,它们分别用于构建 Web 应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。本示例代码将展示如何将这两个框架整合在一起,以实现高效、灵活的后端...

    Spring MVC 教程快速入门 深入分析

    十八、Spring MVC多视图控制器:解释了如何配置和使用Spring MVC的多视图控制器来处理不同的视图需求。 十九、&lt;mvc:annotation-driven/&gt;到底做了什么工作:描述了&lt;mvc:annotation-driven /&gt;标签的作用,它自动注册...

    Spring Web MVC入门教程

    同时,Spring Web MVC支持灵活的URL映射策略,能够非常方便地与其他视图技术(如Velocity、FreeMarker等)集成。此外,它还提供了一系列内置的功能,如数据类型转换器、数据格式化器、数据验证器等,极大地简化了...

    Spring-MVC的demo

    一个典型的Spring MVC应用需要配置DispatcherServlet、视图解析器、拦截器等。XML配置或Java配置都可以,现在更推荐使用Java配置,因为更直观且易于维护。 10. **单元测试与集成测试** Spring MVC提供测试支持,...

    spring-mvc-showcase

    此外,该项目还展示了如何配置 Spring MVC,例如在 web.xml 中配置 DispatcherServlet,以及在 Spring 配置文件中定义 HandlerMapping 和 HandlerAdapter 等。这有助于理解 Spring MVC 的工作流程。 "spring-mvc-...

Global site tag (gtag.js) - Google Analytics