谁在春季 MVC 中设置响应内容类型(@ResponseBody)
2022-08-31 08:11:10
我在我的注释驱动的Spring MVC Java Web应用程序中运行在jetty Web服务器(目前在maven jetty插件中)。
我正在尝试使用一个控制器方法仅返回字符串帮助文本来执行一些AJAX支持。资源采用 UTF-8 编码,字符串也是如此,但我从服务器发出的响应带有
content-encoding: text/plain;charset=ISO-8859-1
即使我的浏览器发送
Accept-Charset windows-1250,utf-8;q=0.7,*;q=0.7
我正在以某种方式使用弹簧的默认配置
我发现了一个提示,将这个bean添加到配置中,但我认为它只是没有被使用,因为它说它不支持编码,而是使用默认的编码。
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/plain;charset=UTF-8" />
</bean>
我的控制器代码是(请注意,响应类型的这种变化对我不起作用):
@RequestMapping(value = "ajax/gethelp")
public @ResponseBody String handleGetHelp(Locale loc, String code, HttpServletResponse response) {
log.debug("Getting help for code: " + code);
response.setContentType("text/plain;charset=UTF-8");
String help = messageSource.getMessage(code, null, loc);
log.debug("Help is: " + help);
return help;
}