springmvc controller动态设置content-type
生活随笔
收集整理的這篇文章主要介紹了
springmvc controller动态设置content-type
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
springmvc??RequestMappingHandlerAdapter#invokeHandlerMethod?通過(guò)ServletInvocableHandlerMethod#invokeAndHandle調(diào)用目標(biāo)方法,并處理返回值。
如果return?value !=?null,則通過(guò)returnvalueHandlers處理,內(nèi)部會(huì)調(diào)用MessageConverter轉(zhuǎn)換成相應(yīng)的報(bào)文格式。
HttpOutputMessage outputMessage?對(duì)應(yīng)的實(shí)例?是 org.springframework.http.server.ServletServerHttpResponse。 在寫(xiě)入數(shù)據(jù)的同時(shí),會(huì)設(shè)置response的header,包括content-type(根據(jù)RequestMapping?的?produces?屬性?計(jì)算出來(lái))。 所以,在帶有返回值的情況下,在controller中設(shè)置content-type是無(wú)效的,會(huì)被消息轉(zhuǎn)換器覆蓋掉。 @RequestMapping(value = "xxx", method = {RequestMethod.POST, RequestMethod.GET}) @ResponseBody public String handleKafkaSpecialMessage(HttpServletRequest request, HttpServletResponse response) {response.setContentType("application/json");return "xxx"; }
改一下返回值就好了
@RequestMapping(value = "xxx", method = {RequestMethod.POST, RequestMethod.GET}) @ResponseBody public void handleKafkaSpecialMessage(HttpServletRequest request, HttpServletResponse response) {response.setContentType("application/json");try(OutputStream ros = response.getOutputStream()) {IOUtils.write("xxx", ros);ros.flush();} catch (IOException e) {} }?
轉(zhuǎn)載于:https://www.cnblogs.com/hujunzheng/p/9405178.html
總結(jié)
以上是生活随笔為你收集整理的springmvc controller动态设置content-type的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 三百万存银行五年有多少利息 定期的话利息
- 下一篇: java 跨域 下载文件_文件下载重命名