我是spring-mvc的新手。我有一个Spring Controllers + JSP项目。现在我的问题是我在POST数据中破坏了charset。我已经阅读了许多专门针对这个问题的帖子 - 在我的Bootstrap中为spring过滤器链添加了过滤器:
FilterRegistration.Dynamic encodingFilter = servletContext.addFilter("encoding-filter", new CharacterEncodingFilter());
encodingFilter.setInitParameter("encoding", "UTF-8");
encodingFilter.setInitParameter("forceEncoding", "true");
encodingFilter.addMappingForUrlPatterns(null, true, "/*");
添加了带有WebMvcConfigurerAdapter的消息转换器
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
{
converters.add(new ByteArrayHttpMessageConverter());
converters.add(new StringHttpMessageConverter(Charset.forName("UTF-8")));
converters.add(new FormHttpMessageConverter());
converters.add(new SourceHttpMessageConverter<>());
}
但没有任何帮助我。如果我发布带有俄语字符集的表单数据 - 它会被打破控制器。
答案 0 :(得分:0)
因此,经过一些调查后,我发现问题只出现在我的自定义Spring Security AuthService中。在安全过滤器链中添加CharacterEncodingFilter后,问题得以解决。