2014-05-20 13 views
5

Ho più annotazioni di convalida su ciascun file del mio bean, ma voglio visualizzare solo il primo messaggio non riuscito per ogni campo nell'applicazione MVC di primavera in cui sto usando JSR 303. Attualmente , sta valutando tutti i vincoli e visualizzando tutti i messaggi dei messaggi per ogni campo. Quando un file è vuoto, non voglio valutare il suo limite minimo e massimo.Visualizza solo un messaggio di errore per campo con JSR 303

Ho provato con i gruppi, ma non funziona come previsto e più ho bisogno di invocare il validatore esplicitamente qualcosa come validator.validate() che voglio evitare.

Esiste un'alternativa per raggiungere questo risultato scrivendo sopra alcune classi di convalida?

Ho almeno 3 vincoli per ogni campo e massimo 5. La visualizzazione di tutti i messaggi di tesi per ciascun campo non sembra affatto buona. Sto citando molla 4.xe ibernazione 4.x

risposta

1

La strada da percorrere è tramite gruppi e sequenze di gruppo. Questa è l'unica funzionalità portatile che garantisce un ordine di convalida e la cessazione della convalida se un vincolo all'interno di un gruppo fallisce. Non puoi assegnare i vincoli nel tuo bean ai gruppi appropriati e quindi ridefinire la sequenza di gruppi predefinita per il bean stesso? Vedi anche http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-default-group-class

+0

I gruppi non funzionano come previsto, nel mio caso. Inoltre ho bisogno di chiamare il validatore esplicitamente passando questi gruppi. – user1614862

+0

Quello che sta accadendo con i gruppi è che ... diciamo che ho due variabili del bean di form come nome ed e-mail, quindi ho dei vincoli come "@NotEmpty" per entrambe le variabili e inoltre "@Email" per la variabile email. Ora se non inserisco nulla nel campo del nome e nel formato dell'email errato per il campo dell'email, dovrei ricevere il messaggio di errore come "Questo campo è richiesto" per il campo del nome e il messaggio di errore "E-mail non valida" per il campo dell'email. Ma con i gruppi, mostra solo un messaggio di errore solo per il campo nome e niente per il campo email. Poiché solo i primi campi del gruppo sono convalidati. – user1614862

+0

Hai ragione il tuo caso d'uso specifico non è attualmente supportato. Vedi anche https://hibernate.atlassian.net/browse/HV-462 e https://hibernate.atlassian.net/browse/BVAL-248. Quindi c'è un lavoro ingombrante in giro per gruppi e sequenze di gruppo. Vedi il problema dell'HV di mentioend. – Hardy

Problemi correlati