看一看源代碼中的默認構造器的代碼:
注意這個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