Auflösen von Inhaltstyp-Diskrepanzen mit @ResponseBody von Spring MVC
In Spring MVC-Anwendungen, wenn eine Controller-Methode einen String zurückgibt und mit annotiert wird @ResponseBody, das Framework ist für die Festlegung des Inhaltstyps der Antwort verantwortlich. Standardmäßig wird „text/plain“ mit UTF-8-Kodierung verwendet.
Anpassen des Inhaltstyps
Um den Standardinhaltstyp zu überschreiben, können Sie ihn einschließen die folgende Konfiguration in Ihrer Spring-Anwendung:
<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>
Dadurch wird sichergestellt, dass von @ResponseBody-Methoden zurückgegebene Zeichenfolgen den angegebenen Inhaltstyp verwenden. Dieser Ansatz ist jedoch nicht immer effektiv.
Verwendung des Produces-Attributs
Spring 3.1 führt das Produces-Attribut in die RequestMapping-Annotation ein. Durch die Angabe von „produces = „application/json; charset=utf-8““ können Sie den Inhaltstyp für die Antwort explizit festlegen.
Beispiel-Controller:
<code class="java">@RequestMapping(value = "/getDealers", method = RequestMethod.GET, produces = "application/json; charset=utf-8") @ResponseBody public String sendMobileData() { return "..."; }</code>
Dieser Ansatz verwendet die erzeugt ein Attribut, um das Standardverhalten des Inhaltstyps zu überschreiben und sicherzustellen, dass die Antwort die richtige Codierung enthält.
Das obige ist der detaillierte Inhalt vonWie behebe ich Inhaltstyp-Diskrepanzen mit @ResponseBody von Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!