java - Bean 验证 API

标签 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;

这是行不通的,错误的输入数据(Имя автора только из букв)

但是如何在正则表达式中添加俄语字母呢?

是的,Spring 形式的问题。当删除正则表达式并输入俄语文本时,它会在数据库中写入类似的内容 ÐеÑÑÑов

最佳答案

通过在 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а-яА-Я] 这样的正则表达式工作正常。

关于java - Bean 验证 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22811932/

相关文章:

java - 无法使用对象集合将哈希集转换为树集

regex - 正则表达式中英镑 (#) 的含义

c# - 正则表达式列表中的多个字符串c#

c# - 在 StringBuilder 上替换 Regex 的最佳方法是什么?

java - Log4j 未从资源文件夹中获取 log4j.properties 文件

java - Spring 应用程序上下文加密

java - 在 Spring-MVC 中显示 JSP 页面时出现问题

java - 将格式化规则应用于整个 Eclipse 工作空间

java - 如何获取整数输入的最后一个数字

java - 使用 The Grinder 负载测试框架的问题