spring 视图解析 ——InternalResourceViewResolver

原文:https://www.cnblogs.com/lyj-gyq/p/8963885.html

Spring自带了13个视图解析器,能够将逻辑视图名转换为物理实现

spring 视图解析 ——InternalResourceViewResolver_第1张图片

spring 视图解析 ——InternalResourceViewResolver_第2张图片

spring 视图解析 ——InternalResourceViewResolver_第3张图片

首先将会介绍 InternalResourceViewResolver,这个视图解析器一般会用来 解析JSP视图。

 1.  Spring提供了两种支持JSP视图的方式: 

  • InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准标签库 (JavaServer Pages Standard Tag Library,JSTL)的 话,InternalResourceViewResolver能够将视图名解析为 JstlView形式的JSP文件,从而将JSTL本地化和资源bundle变量暴 露给JSTL的格式化(formatting)和信息(message)标签。
  • Spring提供了两个JSP标签库,一个用于表单到模型的绑定,另一 个提供了通用的工具类特性。

考虑一个简单的场景,假设逻辑视图名为home。通用的 实践是将JSP文件放到Web应用的WEB-INF目录下,防止对它的直接 访问。如果我们将所有的JSP文件都放在“/WEB-INF/views/”目录下, 并且home页的JSP名为home.jsp,那么我们可以确定物理视图的路径 就是逻辑视图名home再加上“/WEB-INF/views/”前缀和“.jsp”后缀。如下图所示:

spring 视图解析 ——InternalResourceViewResolver_第4张图片

 

当使用@Bean注解的时候,我们可以按照如下的方式配 置Internal-ResourceView Resolver,使其在解析视图时,遵 循上述的约定。

复制代码
1     @Bean // 配置JSP视图解析器
2     public ViewResolver viewResolver() {
3         InternalResourceViewResolver resolver = new InternalResourceViewResolver();
4         resolver.setPrefix("/WEB-INF/views/");
5         resolver.setSuffix(".jsp");
6         resolver.setExposeContextBeansAsAttributes(true);
7         return resolver;
8     }
复制代码

2.  解析JSTL视图

如果在JSP中使用JSTL标签来处理格式化和信息的话,那么就会让InternalResourceViewResolver将视图解析为JstlView。 JSTL的格式化标签需要一个Locale对象,以便于恰当地格式化地域 相关的值,如日期和货币。信息标签可以借助Spring的信息资源和 Locale,从而选择适当的信息渲染到HTML之中。通过解析 JstlView,JSTL能够获得Locale对象以及Spring中配置的信息资 源。 

你可能感兴趣的:(java)