我的注释驱动的 Spring MVC Java web 应用程序运行在 jetty web 服务器上(目前使用的是 maven jetty 插件)。
我试图用一个只返回 String 帮助文本的控制器方法来做一些 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;
}