1. 程式人生 > >SpringMVC 4.3.* 關於ResponseBody的contentType

SpringMVC 4.3.* 關於ResponseBody的contentType

        我想將@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);
	}

我想要的是一句簡單的註解能解決呀!!!