In Spring MVC spielt die @ResponseBody-Annotation eine entscheidende Rolle bei der Bestimmung des Inhaltstyps der Antwort an den Kunden zurückgeschickt. Diese Annotation ist nützlich, wenn Sie benutzerdefinierte Antworten wie JSON oder Nur-Text auf flexible Weise zurückgeben.
In Ihrem Fall tritt ein Problem auf, bei dem die Antwort Ihrer Controller-Methode falsch eingestellt ist Inhaltskodierung. Dies liegt am Standardverhalten von Spring MVC, das auf die ISO-8859-1-Kodierung zurückgreift, wenn kein passender Konverter für den zurückgegebenen Wert gefunden wird.
Um dieses Problem zu beheben und den richtigen Wert festzulegen Für den Inhaltstyp können Sie das Attribut „produziert“ der Annotation „@ResponseBody“ verwenden. Mit diesem Attribut können Sie die Medientypen (d. h. Inhaltstypen) angeben, die Ihre Controller-Methode erzeugen kann.
Für Ihren speziellen Fall möchten Sie, dass Ihre Controller-Methode einfachen Text in UTF-8-Kodierung erzeugt. So können Sie dies erreichen:
<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>
Durch das Hinzufügen von „produziert = „text/plain; charset=utf-8“ zur @ResponseBody-Annotation weisen Sie Spring MVC an, den Inhaltstyp von explizit festzulegen die Antwort auf text/plain mit dem Zeichensatz utf-8. Dies sollte sicherstellen, dass die Antwort korrekt codiert und auf der Clientseite ordnungsgemäß angezeigt wird.
Beachten Sie, dass die @RequestMapping-Annotation auch das Producer-Attribut unterstützt, mit dem die Medientypen gesteuert werden können, die die entsprechende Anforderungszuordnung steuern kann Griff.
Das obige ist der detaillierte Inhalt vonWie kann ich den Inhaltstyp der Antwort mit @ResponseBody in Spring MVC steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!