0 0

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

最近开始学习Spring3 MVC Restful,视图采用了jsp和freemarker,分别放在/WEB-INF/JSP和/WEB-INF/FTL文件夹下。使用spring MVC时之返回视图的字符串名称,怎么让它知道这个名称是对应jsp文件夹下还是ftl文件夹下的呢?
网上查了一些资料,但很多都没注释,看了也不明白,而且跟帖的人似乎也没赞同。
请问Spring3如何配置解决这个问题呢?

问题补充:我的意思是在Controller中进行转发时如何处理?
我用的是Spring3中的注解@Controller,然后在调用的方法中只返回字符串(如“success”),那么Spring3是如何确定是转到"/WEB-INF/JSP/success.jsp",还是“/WEB-INF/FTL/success.ftl”呢?
如果可以确定,那又是如何配置呢?(最好用Spring3解决)

问题补充:
lp87335503 写道
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强大之一!


能否采用Spring3的注释解决呢?
2010年12月18日 11:30

2个答案 按时间排序 按投票排序

0 0

<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

2010年12月21日 10:36
0 0

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强大之一!

2010年12月18日 11:53

相关推荐

    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