2010-11-02 9 views
12

.... file diJSR-303 Type Controllo Prima di rilegatura modello

@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits") 
private int value; 

fagioli ....

<mvc:annotation-driven /> 

regolatore ....

@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST }) 
public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) { 
    if(result.hasErrors()) { 
     return new ModelAndView("admin/editSection", "section", section); 
    } 

Come faccio limitare "valore" a solo numeri? Se entro in qualcosa di diverso da un numero, ottengo questo errore:

Failed to convert property value of type java.lang.String to required type java.lang.Integer for property value; nested exception is org.springframework.core.convert.ConversionFailedException: Unable to convert value "A" from type java.lang.String to type java.lang.Integer; nested exception is java.lang.IllegalArgumentException: Unable to parse A

Ho visto alcuni post citato initBinding ma non sono sicuro di come usarlo o se sarà anche darmi una mano. Questo deve essere stato risolto prima. C'è un modo per assicurarsi che sia un numero prima che si leghi?

Oppure, se qualcuno potesse pubblicare la voce messages.properties corretta per ignorare questo errore, potrebbe funzionare anche per me.

ho provato @Pattern ma che non funziona su interi

risposta

24

Come lei ha ricordato, è necessario un messaggio user-friendly in messages.properties. È possibile utilizzare uno dei seguenti codici di messaggio (con diversi livelli di selettività):

  • typeMismatch.section.value
  • typeMismatch.value
  • typeMismatch.int
  • typeMismatch

Inoltre, quando non si sa codice messaggio, è sufficiente stampare il - il suo toString() restituisce la descrizione completa del binding ror.

+0

Puoi spiegarlo in modo più dettagliato? –

+0

Ulteriori dettagli sulla posizione corretta di messages.properties e la sua dichiarazione nei file di configurazione .xml in questa risposta: http://stackoverflow.com/questions/6540300/spring-3-0-mvc-seems-to-be- ignorando-messaggi-proprietà –

+4

sembra che ci sia un riferimento circolare qui, questa risposta punta a una risposta (per ulteriori spiegazioni) che rimanda a questa risposta! – gresdiplitude

Problemi correlati