springmvc无法解析视图前缀prefix_SpringBoot2.x系列教程之整合SpringMVC之内容协商视图解析器...

SpringBoot2.x系列教程28--整合SpringMVC之内容协商ContentNegotiatingViewResolver

作者:一一哥

我们在上一章节中,讲解了ContentNegotiating内容协商的使用及简单原理分析,上一章节主要是讲解内容协商在HttpMessage上的作用。

其实内容协商不仅仅可以作用在HttpMessage上,还可以作用在View视图上,本章节我讲解该内容。

一.内容协商视图解析器

1.概述

ContentNegotiatingViewResolver自己并不解析视图,而是委派给其他的视图处理器。

为了使这个解析器正常工作,order序号需要设置成比其他的视图处理器高的优先级(默认就是最高的)。

2. ContentNegotiatingViewResolver细节:

  • ContentNegotiationManager用于内容协商的策略可以手动设置指定,也可以通过FactoryBean自动生成;
  • viewResolvers默认是去容器内找到所有的,当然你也可以手动set进来;
  • 使用request的媒体类型,根据扩展名选择不同的view输出不同的格式;
  • 不是自己处理view,而是代理给不同的ViewResolver来处理不同的view;
  • 默认是支持Accept和后缀的协商方式的。并且还支持 逻辑视图名.后缀的视图解析方式;
  • 依据View.getContentType匹配MediaType来完成的最佳匹配。

二.ContentNegotiatingViewResolver使用

在默认情况下,Spring MVC并没有开启ContentNegotiatingViewResolver内容协商视图解析器,因此如果有同一接口资源,要用多视图展示的需求,我们是需要自己手动配置来实现的。

所以接下来我带大家,对同一个接口资源,返回多个View。

1. 需求介绍

我们要对同一个RESTful风格的URL,根据请求的不同,可以得到一个PDF视图,一个JSON视图,一个Html视图。

2. 创建web项目(略)

参照之前的案例,我们创建一个新的web项目,过程略去。

1749f858417c1ca8a46ae32cac42f526.png

3. 创建View视图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值