Maison >Java >javaDidacticiel >Comment résoudre les divergences de type de contenu avec @ResponseBody de Spring MVC ?

Comment résoudre les divergences de type de contenu avec @ResponseBody de Spring MVC ?

DDD
DDDoriginal
2024-10-30 01:26:28817parcourir

How to Resolve Content-Type Discrepancies with Spring MVC's @ResponseBody?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn