2014-04-02 10 views
6

Utilizzare l'API di convalida Bean per convalidare gli oggetti per il salvataggio in DB da Hibernate. Con lettere inglesi tutti bene:API di convalida Bean

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

quando ho scritto questo:

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

E 'non funziona, fare errore circa sbagliato inserire i dati (Имя автора только из букв)

Ma come aggiungere le lettere russe in regexp?

Sì, problema in forma di primavera. Quando rimuova regexp e inserire il testo russo, è scrivere nel database qualcosa di simile ÐÐμÑÑов

+1

Cambiare il modello in 'regexp ="^[\ p {IsCyrillic} a-zA-Z] + $ "'. Vedi se funziona! – Keerthivasan

+0

@Octopus, suppongo tu intenda 'regexp ="^[\ p {IsCyrillic} a-zA-Z] + $ "' – stema

+0

non funziona, errore in \ p, perché è in stringa. se scrivi come \\ p, non funziona – disable1992

risposta

1

Problema risolto da aggiungere questo nel contesto 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> 

e regexp come [a-zA-Zа-яА-Я] funzionano bene.

+0

Non dimenticare di accettare la tua risposta. Anche l'uso del flag '(? I)' renderà insensibile la distinzione tra maiuscole e minuscole, quindi forse provate '(? I) [a-zа-я]'. – Pshemo

+0

Penso che '[a-zA-Zа-яА-Я]' scrivi più comprensibile. – disable1992

Problemi correlati