使用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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章