使用Bean Validation API将验证对象用于通过Hibernate保存在DB中。 英文字母都很好:
@Pattern(regexp="^[a-zA-Z]+$",message="Имя автора только из букв")
private String name;
当我写这篇文章时:
@Pattern(regexp="^[a-zа-яA-ZА-Я]+$", message="Имя автора только из букв")
private String name;
它不起作用,对错误的输入数据采取错误(Имяавторатолькоизбукв)
但是如何在regexp中添加俄语字母?
是的,Spring形式的问题。当删除正则表达式并输入俄语文本时,它在数据库中写入这样的东西ÐÐμÑÑов
答案 0 :(得分:1)
通过在web-app上下文中添加此问题解决了问题:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
和[a-zA-Zа-яА-Я]
之类的正则表达式可以正常工作。