2010-11-02 10 views
12

modelo .... archivoJSR-303 Tipo Comprobación Antes Encuadernación

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

habas ....

<mvc:annotation-driven /> 

controlador ....

@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); 
    } 

Cómo hacer yo restringir "valor" a solo números? Si entro en algo más que un número, me sale este error:

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

he visto algunos postes menciono initBinding pero no estoy seguro de cómo usarlo o si incluso me ayudará a cabo. Esto tiene que haber sido resuelto antes. ¿Hay alguna manera de asegurar que sea un número antes de que se consolide?

O, si alguien puede publicar la entrada correcta de messages.properties para anular este error, eso podría funcionar para mí también.

me trataron @Pattern pero eso no funciona en enteros

Respuesta

24

Como usted ha mencionado, es necesario un mensaje fácil de usar en messages.properties. Puede utilizar uno de los siguientes códigos de mensajes (con diferentes niveles de selectividad):

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

Además, cuando usted no sabe código de mensaje, simplemente puede imprimir el BindingResult - su toString() devuelve la descripción completa del encuadernador rors.

+0

¿Puedes explicarlo más detalladamente? –

+0

Más detalles sobre la ubicación correcta de messages.properties y cómo declararlo en los archivos de configuración .xml en esta respuesta: http://stackoverflow.com/questions/6540300/spring-3-0-mvc-seems-to-be- ignorando-mensajes-propiedades –

+4

Parece que aquí hay una referencia circular, esta respuesta apunta a una respuesta (para más explicación) que apunta a esta respuesta. – gresdiplitude

Cuestiones relacionadas