2014-04-02 15 views
6

Sử dụng API xác thực đậu để xác thực đối tượng để lưu trong DB bằng Hibernate. Với chữ cái tiếng Anh tất cả tiền phạt:API xác nhận đậu

@Pattern(regexp="^[a-zA-Z]+$",message="Имя автора только из букв") 
private String name; 

Khi tôi viết này:

@Pattern(regexp="^[a-zа-яA-ZА-Я]+$", message="Имя автора только из букв") 
private String name; 

Nó không hoạt động, hãy báo lỗi về sai nhập dữ liệu (Имя автора только из букв)

Nhưng làm thế nào thêm chữ cái Nga trong regexp?

Có, sự cố trong biểu mẫu Mùa xuân. Khi remove regexp và nhập văn bản Nga, đó là viết một cái gì đó trong cơ sở dữ liệu như thế này ÐÐμÑÑов

+1

Thay đổi mẫu thành 'regexp ="^[\ p {IsCyrillic} a-zA-Z] + $ "'. Xem có hiệu quả không! – Keerthivasan

+0

@Octopus, đoán bạn có nghĩa là 'regexp ="^[\ p {IsCyrillic} a-zA-Z] + $ "' – stema

+0

không hoạt động, lỗi trong \ p, vì nó nằm trong chuỗi. nếu viết như \\ p, không hoạt động – disable1992

Trả lời

1

Vấn đề giải quyết bằng cách thêm này trong bối cảnh ứng dụng web:

 <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> 

và regexp như [a-zA-Zа-яА-Я] làm việc tốt.

+0

Đừng quên chấp nhận câu trả lời của bạn. Cũng sử dụng cờ '(? I)' sẽ làm cho trường hợp regex không nhạy cảm nên có thể thử '(? I) [a-zа-я]'. – Pshemo

+0

Tôi nghĩ rằng '[a-zA-Zа-яА-Я]' viết dễ hiểu hơn. – disable1992

Các vấn đề liên quan