In Spring MVC spielt die @ResponseBody-Annotation eine entscheidende Rolle bei der Bestimmung der an den Kunden zurückgesendeten Inhaltstypen. Diese Annotation ist nützlich, wenn Sie benutzerdefinierte Antworten wie JSON oder einfacher Text auf flexible Weise zurückgeben.
In Ihrem Fall stoßen Sie auf ein Problem, bei dem die Antwort Ihrer Controller-Methode mit einem falschen Inhaltscodieren festgelegt wird. Dies ist auf das Standardverhalten von Spring MVC zurückzuführen, das auf die ISO-8859-1-Encodierung zurückreicht, wenn es keinen geeigneten Konverter für den zurückgegebenen Wert findet.
, um dieses Problem zu lösen und den richtigen Inhaltstyp festzulegen, können Sie die Attribut der @RespondeBody-Annotation 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 in der UTF-8-Codierung einfacher Text erstellt. So können Sie dies erreichen:
@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;
}
durch Hinzufügen von procusses = "text/plain; charset = utf-8" zur @ResponseBody-Annotation weisen Sie die Spring-MVC an, den Inhaltstyp der Antwort auf Text/Plain mit einem Zeichensatz von UTF-8 explizit festzulegen. Dies sollte sicherstellen, dass die Antwort korrekt codiert und ordnungsgemäß auf der Client -Seite angezeigt wird.
Beachten Sie, dass die @RequestMapping -Annotation auch das Attribut erzeugt, mit dem die Medientypen gesteuert werden können, die die entsprechende Anforderungszuordnung verarbeiten kann.
.Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3