SpringMVC 4.3.* 關於ResponseBody的contentType
阿新 • • 發佈:2019-01-05
我想將@ResponseBody返回的物件以json格式列印在網頁裡,但是總是提示我下載。這個應該設定ContentType就ok了,我現在使用的4.3.* 的SpringMVC已經實現XML零配置了,但是在找尋關於“如何設定響應報文的ContentType”時,發現還都是xml的配置方式:如下
<property name="messageConverters"> <list> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property>
還有人在網上發帖說是通過註解@RequestMapping 中的produces解決,程式碼如下
@RequestMapping(value = "/upload",produces="text/plain;charset=UTF-8")
然並卵,估計發貼人自己都沒試過,我親測是沒用的,估計這個是設定請求過來的訊息頭,而非是響應的頭吧。找了老半天還是沒有找到如何用註解解決。不知道是SpringMVC沒有還是我沒找到,如果有大神知道,還請大神留言一下。
最後只找到了一個很尷尬的解決方案,使用ResponseEntity,需要寫程式碼,有點不爽!程式碼如下:
@RequestMapping("/userlist") @ResponseBody ResponseEntity<List<User>> userList() { logger.info("進入Controller,查詢使用者list"); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.TEXT_PLAIN); List<User> list = userService.getUserList(); return new ResponseEntity<List<User>>(list, headers, HttpStatus.OK); }
我想要的是一句簡單的註解能解決呀!!!