`
ssxxjjii
  • 浏览: 938068 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring3mvc自定义多视图解析器

 
阅读更多

使用视图名后缀来判断选择相应的视图解析器
自定义一个视图解析器,MultiViewResover.java

01 package com.it.app.web;
02  
03 import java.util.Locale;
04 import java.util.Map;
05  
06 import org.springframework.web.servlet.View;
07 import org.springframework.web.servlet.ViewResolver;
08  
09 public class MultiViewResover implementsViewResolver {
10   
11     privateMap<String, ViewResolver> resolvers;
12   
13     @Override
14     publicView resolveViewName(String viewName, Locale locale)
15             throwsException {
16         intn = viewName.lastIndexOf("_"); // 获取
17                                             // viewName(modelAndView中的名字)看其有没有下划线
18         if(n == (-1))
19             returnnull// 没有则直接返回空
20         // 有的话截取下划线后面的字符串 这里一般是jsp,ftl,vm与配置文件中的<entry key="ftl">的key匹配
21         String suffix = viewName.substring(n + 1);
22         // 根据下划线后面的字符串去获取托管的视图解析类对象
23         ViewResolver resolver = resolvers.get(suffix);
24   
25         // 取下划线前面的部分 那时真正的资源名.比如我们要使用hello.jsp 那viewName就应该是hello_jsp
26         viewName = viewName.substring(0, n);
27         if(resolver != null)
28             returnresolver.resolveViewName(viewName, locale);
29         returnnull;
30     }
31   
32     publicMap<String, ViewResolver> getResolvers() {
33         returnresolvers;
34     }
35   
36     public voidsetResolvers(Map<String, ViewResolver> resolvers) {
37         this.resolvers = resolvers;
38     }
39 }

 

配置spring的mvc文件 

01 <!-- 自定义多视图解析器 -->
02     <bean id="viewResolver" class="com.jw.app.web.MultiViewResover">
03         <property name="resolvers">
04             <map>
05                 <entry key="jsp">
06                     <bean
07                         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
08                         <property name="prefix" value="/WEB-INF/views/jsp/" />
09                         <property name="suffix" value=".jsp" />
10                     </bean>
11                 </entry>
12                 <!-- 此处其他视图解析器 -->
13             </map>
14         </property>
15     </bean>

注意,如果已经配置了一个默认的视图解析器org.springframework.web.servlet.view.InternalResourceViewResolver,那么该自定义视图解析器必须放在默认视图解析器之前。
修改首页控制器返回的视图名称,加上"_jsp"后缀

1 @RequestMapping(value="/indexjsp")
2     public String index_jsp(){
3         return "index_jsp";
4     }
分享到:
评论

相关推荐

    Spring3MVC注解教程.ppt

    基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为...

    spring MVC配置详解

    我们可以使用 InternalResourceViewResolver 或其他视图解析器来配置 ViewResolver。 七、总结 Spring MVC 是一个功能强大且灵活的 Web 框架,它提供了许多可配置的组件,以便我们根据需要进行自定义配置。掌握 ...

    Spring3 MVC 示例下载

    通过这些示例,你可以逐步学习到Spring3 MVC的配置、控制器的编写、视图解析、数据绑定、异常处理、国际化和RESTful服务等多个方面。每个示例都有详细的代码和说明文档,对于初学者来说是宝贵的参考资料。记得实践是...

    spring3 mvc的学习的例子

    5. **视图解析器**:在Spring MVC中,视图解析器(ViewResolver)用于将逻辑视图名转换为实际的视图资源。例如,我们可以配置一个JSP视图解析器,将逻辑视图名“home”解析为“/WEB-INF/jsp/home.jsp”。 6. **拦截...

    spring3 mvc简单例子包含完整jar包

    5. **ViewResolver**:视图解析器根据ModelAndView中的视图名查找具体的视图实现,如JSP、FreeMarker等。 6. **View**:视图负责呈现模型数据,可以是JSP、Thymeleaf或其他模板引擎。 7. **HandlerMapping**:...

    Spring MVC 3.0实战指南.ppt

    基于协商的视图解析器 目录 本地化:基础原理 本地化:Spring MVC的本地化解析器 本地化:Spring MVC的本地化解析器 LocaleChangeInterceptor:通过URL参数指定 静态资源处理 静态资源处理:使REST风格的URL成为实现 ...

    spring2.5 mvc 完整项目

    《Spring 2.5 MVC 完整项目:深入解析与实践》 在IT行业中,Spring框架作为Java领域的重要支柱,其MVC(Model-View-Controller)模块在Web应用程序开发中占据着举足轻重的地位。本文将针对“Spring 2.5 MVC 完整...

    Spring3+Spring3MVC+MYBatis3集成

    在Spring3MVC中,配置DispatcherServlet、Controller接口的实现以及视图解析器是关键步骤。 **MyBatis** MyBatis是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了动态SQL的能力。在项目中,MyBatis...

    spring3mvc 经典实例

    视图解析器如`InternalResourceViewResolver`会根据返回的逻辑视图名查找实际的视图资源,如JSP页面。 实例部分通常包括创建一个简单的“Hello, World!”应用,展示如何定义控制器、处理请求和显示响应。此外,还...

    Spring3 MVC with Japer Report Demo

    3. **配置Spring MVC**:在Spring的配置文件中,添加视图解析器(如`InternalResourceViewResolver`)来处理JasperReport生成的报表。同时,可能需要配置一个Bean来加载报表模板文件。 4. **编写Controller**:创建...

    Spring MVC实例 MVC注解配置

    - 在Spring MVC中,我们不再需要传统的XML配置文件来定义控制器、视图解析器等组件。通过使用注解,可以在类或方法级别直接声明其功能。例如,`@Controller`注解标记一个类作为处理HTTP请求的控制器,而`@...

    spring_mvc2

    8. **视图解析器(ViewResolver)**:根据给定的视图名查找实际的视图资源。例如,InternalResourceViewResolver可以将视图名解析为JSP页面。 9. **拦截器(Interceptor)**:Spring MVC允许自定义拦截器,实现请求...

    Spring MVC简单例子

    8. **配置文件**:理解Spring MVC的配置文件,如`servlet-context.xml`,它定义了Spring MVC的组件,如视图解析器、HandlerMapping和HandlerAdapter等。 9. **Maven或者Gradle构建**:项目可能使用Maven或Gradle...

    Spring MVC 基础实例源码01

    5. **ViewResolver**:视图解析器,负责根据Controller返回的视图名称查找实际的视图资源,如JSP、Freemarker等。 6. **ModelAndView**:用于同时携带模型数据和视图名称的对象,Controller可以使用它来传递数据到...

    spring3mvc实例

    在Spring 3 MVC的配置方面,我们需要创建一个servlet配置文件(如`spring-servlet.xml`),其中定义了Bean、视图解析器和其他相关组件。例如,我们可以定义一个Controller Bean,如下所示: ```xml , Spring MVC!...

    spring.net mvc hibernamte整合实例

    4. **视图解析**:通过配置,Spring.NET MVC 可以选择不同的视图技术(如 Razor 或 Web Forms),并根据逻辑视图名返回实际视图。 5. **异常处理**:提供了全局的异常处理机制,可以统一处理未捕获的异常,提高应用...

    spring MVC_快速入门

    视图解析器(ViewResolver)负责将逻辑视图名转换为实际视图。例如,使用InternalResourceViewResolver可以将逻辑视图名"home"解析为"/WEB-INF/jsp/home.jsp"。 6. **数据绑定** Spring MVC支持自动的数据绑定,...

    Spring_MVC_4.2.4_RELEASE_中文文档.pdf

    默认配置下,DispatcherServlet会自动配置一些关键组件,如处理器映射器和视图解析器。 3. **控制器的实现**: 使用`@Controller`注解可以标记一个类作为控制器,而`@RequestMapping`用于将HTTP请求映射到处理方法...

    Spring-mvc入门示例

    在入门示例中,我们通常会创建一个 `servlet-context.xml` 配置文件,定义 DispatcherServlet 的配置,包括视图解析器、拦截器、静态资源处理等。同时,我们还需要在 Spring 的主配置文件中声明 MVC 相关的组件。 ...

Global site tag (gtag.js) - Google Analytics