Bean Validation API

时间:2014-04-02 12:44:49

标签: java regex spring hibernate

使用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形式的问题。当删除正则表达式并输入俄语文本时,它在数据库中写入这样的东西ÐÐμÑÑов

1 个答案:

答案 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а-яА-Я]之类的正则表达式可以正常工作。