jsp springmvc 视图解析器_SpringMVC 视图解析器

1.视图解析器 会 根据 把控制器返回的逻辑视图名 确定 渲染模型的视图文件的物理位置。

Spring MVC的一个重要特性:将控制器中处理请求的逻辑 和 视图中渲染实现 解耦。 控制器方法和视图实现 只会在模型内容上保持一致,这是两者最大的关联。

2.Spring提供了13个视图解析器,能够将逻辑视图名 转换为 物理实现。其中 每一项都对应Java Web应用中特定的某种视图技术。

视图解析器InternalResourceViewResolver 一般会用来解析JSP视图。JSP曾经是,而且现在依然还是Java领域占主导地位的视图技术

3.配置解析JSP的视图解析器

Spring MVC中InternalResourceViewResolver是最简单和最常用的视图解析器 能将视图名映射为JSP文件

如下配置  home 解析为“/WEB-INF/views/home.jsp”

books/detail 解析为“/WEB-INF/views/books/detail.jsp”

@Bean

public ViewResolver viewResolver() { // 配置 试图解析器

InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

viewResolver.setPrefix("WEB-INF/views");

viewResolver.setSuffix(".jsp");

viewResolver.setExposeContextBeansAsAttributes(true);

return viewResolver;

}

class="org.springframework.web.servlet.view.InternalResourceViewResolver">

4.标签库

5.Spring对JSP标签库的支持--解析JSTL视图

6.Spring对JSP标签库的支持--Spring的JSP标签库

7.Thymeleaf 视图

以上讲的是在Spring 中集成JPS视图 有时候项目中需要使用Thymeleaf视图。为了在Spring 中使用Thymeleaf,需要配置三个 启用Thymeleaf与Spring集成的 bean。这样 应用程序就可以将响应中的模板渲染到Spring MVC控制器所处理的请求中。Java配置如下:

ThymeleafViewResolver是Spring MVC中viewResolver的一个实现类。像其他(JSP)视图解析器一样,接收一个逻辑视图名并将其解析为Thymeleaf模板视图,它解析成的视图是一个Thymeleaf模板。SpringTemplateEngine会在Spring中启用Thymeleaf引擎,用来解析模板,并基于这些模板渲染结果。TemplateResovler 加载Thymeleaf模板 ,与JSP的InternalResourceViewResolver类似,它也是通过prefix和suffix来定位Thymeleaf引擎 最终定位和查找模板。

这还有个问题 TemplateResolver 没找到是哪个jar包里的

import org.springframework.context.annotation.Bean;

import org.springframework.web.servlet.ViewResolver;

import org.thymeleaf.TemplateEngine;

import org.thymeleaf.spring5.SpringTemplateEngine;

import org.thymeleaf.spring5.view.ThymeleafViewResolver;

import org.thymeleaf.templateresolver.ITemplateResolver;

import org.thymeleaf.templateresolver.ServletContextTemplateResolver;

// Thymeleaf 视图解析器

@Bean

public ViewResolver viewResolver(SpringTemplateEngine templateEngine) {

ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();

viewResolver.setTemplateEngine(templateEngine);

return viewResolver;

}

// 模板引擎

@Bean

public TemplateEngine templateEngine(TemplateResolver templateResolver) {

SpringTemplateEngine templateEngine = new SpringTemplateEngine();

templateEngine.setTemplateResolver(templateResolver);

return templateEngine;

}

// 模板解析器

@Bean

public TemplateResolver templateResolver() {

TemplateResolver templateResolver = new ServletContextTemplateResolver(null);

templateResolver.setPrefix("WEB-INF/templates/");

templateResolver.setSuffix(".html");

//要解析的模板会渲染成HTML 5输出

templateResolver.setTemplateModel("HTML5");

return templateResolver;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值