1
我有一個應該返回xml或json響應的restful API。配置如下:Spring返回應用程序/ * + xml而不是應用程序/ xml
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="ignoreAcceptHeader" value="false" />
<property name="mediaTypes">
<map>
<entry key="xml" value="application/xml" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller" ref="objectXmlMarshaller" />
</bean>
</list>
</property>
</bean>
可惜的是,我們得到的是應用程序/ * + XML而不是應用/ XML響應。這會導致Chrome(或其他瀏覽器)下載文件而不是顯示它。
任何方式解決這一問題?
謝謝。這確實適用於一種方法。但是如果需要使用數十種/數百種方法完成整個API,可以做些什麼? – checklist
如果使用@RequestMapping(...)對整個控制器類進行批註,這也會正常工作。但是,所有mwthod級別聲明都將覆蓋生產屬性的類級別聲明。 – dimas
此外,我認爲你可以嘗試覆蓋接受標頭的請求只有「應用程序/ xml」(我認爲這是可能使用自定義過濾器)。這應該強制您的應用程序以您需要的格式返回結果。但我從來沒有這樣做過,也無法告訴你如何正確地做到這一點。這只是一個想法。 – dimas