Spring MVC视图解析器:Spring MVC ResourceBundleViewResolver示例

简介:

在Spring MVC中,使用ResourceBundleViewResolver基于“.properties”文件中的视图bean来解析“视图名称”。

默认地,ResourceBundleViewResolver将从位于项目class路径根目录下的文件views.properties中加载视图bean,不过,这个位置可以通过“basename”属性覆盖:

1
2
3
4
5
< beans  ...>
          < bean  class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
               < property  name="basename" value=”spring-views” </property>
          </ bean >
</ beans >

  

在上面这个例子中,它从位于项目class路径根目录下的“spring-views.properties”中加载视图bean。

请看下面的ResourceBundleViewResolver示例。

1.  Controller控制器

一个控制器类,返回一个名为“WelcomePage”的视图。

1
2
3
4
5
6
7
8
9
10
@Controller
@RequestMapping (value =  "demo2" )
public  class  WelcomeController {
 
     @RequestMapping (value =  "/welcome" )
     public  ModelAndView welcome() {
         User user= new  User( "rollen" , 12 , "beijing" );
         return  new  ModelAndView( "welcome" , "user" ,user);
     }
}

  

2.  ResourceBundleViewResolver视图解析器

在Spring的bean配置文件中,注册ResourceBundleViewResolver视图解析器,将默认的视图bean位置改为“spring-views.properties”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version= "1.0"  encoding= "UTF-8"  ?>
        xmlns:context= "http://www.springframework.org/schema/context"
        xmlns:mvc= "http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http: //www.springframework.org/schema/beans
        http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http: //www.springframework.org/schema/context
        http: //www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 
     <!-- 扫描web包,应用Spring的注解 -->
     <context:component-scan base- package = "com.xxx.training" />
 
 
     <bean  class = "org.springframework.web.servlet.view.ResourceBundleViewResolver" >
         <property name= "basename" >
             <value>spring-views</value>
         </property>
     </bean>
 
     <mvc:annotation-driven/>
</beans>

  

3.  视图bean

将每个视图bean按普通的资源绑定样式(键-值对)进行声明。其中:

(1)“welcome”是要匹配的视图名称

(2)“.(class)”是视图的类型

(3)“.url”属性是视图的url位置

文件:spring-views.properties

注意:要将这个“spring-views.properties”文件放到项目的class路径下。

1
2
welcome.( class )=org.springframework.web.servlet.view.JstlView
welcome.url=/WEB-INF/pages/welcome.jsp

执行过程:

当控制器返回一个名为“welcome”的视图时,ResourceBundleViewResolver将在“spring-views.properties”文件中查找以“welcome”起始的键,并返回相对应的视图URL“/WEB-INF/pages/welcome.jsp”给DispatcherServlet。

目录
相关文章
|
14天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
44 2
|
3月前
|
Java 对象存储 开发者
解析Spring Cloud与Netflix OSS:微服务架构中的左右手如何协同作战
Spring Cloud与Netflix OSS不仅是现代微服务架构中不可或缺的一部分,它们还通过不断的技术创新和社区贡献推动了整个行业的发展。无论是对于初创企业还是大型组织来说,掌握并合理运用这两套工具,都能极大地提升软件系统的灵活性、可扩展性以及整体性能。随着云计算和容器化技术的进一步普及,Spring Cloud与Netflix OSS将继续引领微服务技术的发展潮流。
61 0
|
2月前
|
搜索推荐 Java Spring
Spring Filter深度解析
【10月更文挑战第21天】Spring Filter 是 Spring 框架中非常重要的一部分,它为请求处理提供了灵活的控制和扩展机制。通过合理配置和使用 Filter,可以实现各种个性化的功能,提升应用的安全性、可靠性和性能。还可以结合具体的代码示例和实际应用案例,进一步深入探讨 Spring Filter 的具体应用和优化技巧,使对它的理解更加全面和深入。
|
2月前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)
120 5
|
2月前
|
XML Java 数据格式
Spring底层架构源码解析(二)
Spring底层架构源码解析(二)
|
2月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
2月前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
124 3
|
2月前
|
Java Spring 容器
Spring IOC、AOP与事务管理底层原理及源码解析
【10月更文挑战第1天】Spring框架以其强大的控制反转(IOC)和面向切面编程(AOP)功能,成为Java企业级开发中的首选框架。本文将深入探讨Spring IOC和AOP的底层原理,并通过源码解析来揭示其实现机制。同时,我们还将探讨Spring事务管理的核心原理,并给出相应的源码示例。
134 9
|
2月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
58 2
|
3月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)

推荐镜像

更多