使用 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/