Maison  >  Article  >  Java  >  Comment puis-je contrôler le type de contenu de la réponse avec @ResponseBody dans Spring MVC ?

Comment puis-je contrôler le type de contenu de la réponse avec @ResponseBody dans Spring MVC ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 05:13:30283parcourir

How can I control the content type of the response with @ResponseBody in Spring MVC?

Attribut @ResponseBody : contrôle du type de contenu de la réponse dans Spring MVC

Dans Spring MVC, l'annotation @ResponseBody joue un rôle crucial dans la détermination du type de contenu de la réponse renvoyé au client. Cette annotation est utile lors du renvoi de réponses personnalisées, telles que JSON ou texte brut, de manière flexible.

Dans votre cas, vous rencontrez un problème où la réponse de votre méthode de contrôleur est définie avec une valeur incorrecte. encodage de contenu. Cela est dû au comportement par défaut de Spring MVC, qui revient au codage ISO-8859-1 s'il ne trouve pas de convertisseur approprié pour la valeur renvoyée.

Pour résoudre ce problème et définir le bon type de contenu, vous pouvez utiliser l'attribut produit de l'annotation @ResponseBody. Cet attribut vous permet de spécifier les types de médias (c'est-à-dire les types de contenu) que votre méthode de contrôleur peut produire.

Pour votre cas spécifique, vous souhaitez que votre méthode de contrôleur produise du texte brut en codage UTF-8. Voici comment y parvenir :

<code class="java">@RequestMapping(value = "ajax/gethelp")
@ResponseBody
public String handleGetHelp(Locale loc, String code) {
    log.debug("Getting help for code: " + code);
    String help = messageSource.getMessage(code, null, loc);
    log.debug("Help is: " + help);
    return help;
}</code>

En ajoutant products = "text/plain; charset=utf-8" à l'annotation @ResponseBody, vous demandez à Spring MVC de définir explicitement le type de contenu de la réponse à text/plain avec un jeu de caractères utf-8. Cela devrait garantir que la réponse est correctement codée et affichée correctement côté client.

Notez que l'annotation @RequestMapping prend également en charge l'attribut produit, qui peut être utilisé pour contrôler les types de médias que le mappage de requête correspondant peut poignée.

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