使用Spring MVC的AbstractRssFeedView时注意

看一看源代码中的默认构造器的代码:
在这里插入图片描述注意这个MediaType的值,图中的值是:application/rss+xml. 我测试发现Win10 Edge和Chrome都可以解析这种响应内容类型.但Firefox不认识

在这里插入图片描述
它会提示你下载. 按F12看到请求允许的内容类型如下: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8,

并没有Spring MVC的: application/rss+xml.在控制器方法的注解中加:produces="application/xml;charset=UTF-8" 也是无济于事,我发现加与不加都一样的结果。

实现AbstractRssFeedView的类在默认构造中重新设置响应的内容类型:

/**
 * RSS控制器视图
 * 
 * @author xiaofanku
 * @since 20190713
 */
public class TopicRssView extends AbstractRssFeedView{
	public TopicRssView(){
		setContentType(MediaType.APPLICATION_XML_VALUE);
	}
	
	@Override
	protected List<Item> buildFeedItems(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
    //TODO
	}

	@Override
	protected void buildFeedMetadata(Map<String, Object> model, Channel feed, HttpServletRequest request) {
    //TODO
	}
}

将RSS的响应内容类型设为: application/xml . 以下是本人的测试依赖

Spring mvc , Spring framework version: 5.0.7.RELEASE
Rome version: 1.12.0
JDK version: 1.8+
Tomecat version: 8.5.37

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值