[英]Spring mvc character encoding error
Having a dispachetServlet configured as: 将dispachetServlet配置为:
@Override
protected Filter[] getServletFilters()
{
return new Filter[] { new HiddenHttpMethodFilter(), characterEncodingFilter() };
}
private static final String CHARACTER_ENCODING = "UTF-8";
private CharacterEncodingFilter characterEncodingFilter()
{
final CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding( CHARACTER_ENCODING );
characterEncodingFilter.setForceEncoding( true );
return characterEncodingFilter;
}
And a meta on html as: 和HTML上的一个元数据为:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Why when I submit a form with text characters: ç, ñ... I'm getting on controller wrong characters like: çaça 为什么当我提交带有文本字符的表格:ç,ñ...我遇到控制器错误字符,如:çaça
How can I fix it? 我该如何解决?
UPDATED 更新
I'm using thymeleaf instead of jsp and I'm getting parameters: 我正在使用thymeleaf而不是jsp,并且正在获取参数:
@RequestMapping( value = REGISTRATION, method = POST )
public String processRegistration( @ModelAttribute("userForm") User user, Model model )
{
if( userService.existEmail(user) )
{
model.addAttribute("duplicatedMail", true);
return REGISTRATION_VIEW;
}
if( userService.existUsername(user) )
{
model.addAttribute("duplicatedUsername", true);
return REGISTRATION_VIEW;
}
userService.register( user );
return REGISTRATION_SUCCESS_VIEW;
}
Try following: 请尝试以下操作:
return new Filter[] { characterEncodingFilter(), new HiddenHttpMethodFilter() };
Note: You need to add CharacterEncodingFilter before HiddenHttpMethodFilter since latter calls ServletRequest.getParameter method internally. 注意:您需要在HiddenHttpMethodFilter之前添加CharacterEncodingFilter,因为后者在内部调用ServletRequest.getParameter方法。
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.