Résolution des écarts de type de contenu avec @ResponseBody de Spring MVC
Dans les applications Spring MVC, lorsqu'une méthode de contrôleur renvoie une chaîne et est annotée avec @ResponseBody, le framework est responsable de la définition du type de contenu de la réponse. Par défaut, il utilise "text/plain" avec l'encodage UTF-8.
Personnalisation du type de contenu
Pour remplacer le type de contenu par défaut, vous pouvez inclure la configuration suivante dans votre application 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>
Cela garantira que les chaînes renvoyées par les méthodes @ResponseBody utilisent le type de contenu spécifié. Cependant, cette approche n'est pas toujours efficace.
Utilisation de l'attribut Produces
Spring 3.1 introduit l'attribut Produces dans l'annotation RequestMapping. En spécifiant produit = "application/json; charset=utf-8", vous pouvez définir explicitement le type de contenu de la réponse.
Exemple de contrôleur :
<code class="java">@RequestMapping(value = "/getDealers", method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody public String sendMobileData() { return "..."; }</code>
Cette approche utilise le produit un attribut pour remplacer le comportement du type de contenu par défaut et garantir que la réponse contient le codage correct.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!