解決與Spring MVC 的@ResponseBody 的內容類型差異
在Spring MVC 應用程式中,當控制器方法返回String 並註釋為@ResponseBody,框架負責設定回應的內容類型。預設情況下,它使用 UTF-8 編碼的“text/plain”。
自訂Content-Type
要覆寫預設內容類型,您可以包含在Spring 應用程式中進行以下設定:
<code class="xml"><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> </bean> </list> </property> </bean></code>
這將確保從@ResponseBody 方法傳回的字串使用指定的內容類型。然而,這種方法並不總是有效。
使用 Produces 屬性
Spring 3.1 在 RequestMapping 註解中引入了 Produces 屬性。透過指定 Produces = "application/json; charset=utf-8",您可以明確設定回應的內容類型。
範例控制器:
<code class="java">@RequestMapping(value = "/getDealers", method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody public String sendMobileData() { return "..."; }</code>
此方法使用產生屬性來覆寫預設的內容類型行為並確保回應包含正確的編碼。
以上是如何解決 Spring MVC 的 @ResponseBody 的內容類型差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!