Perdónenme por hacer una pregunta tan simple aquí ya que soy nuevo en Spring MVC 3.0. He estado leyendo la documentación del sitio web fuente de primavera un par de veces. He aquí un fragmento de código que me referiré a continuación a mi pregunta: -Spring MVC 3.0: ¿String es el tipo preferido para usar en @PathVariable?
@RequestMapping("/pets/{petId}")
public void findPet(@PathVariable String petId, Model model) {
// implementation omitted
}
Si tengo la intención de utilizar la plantilla URI basado en este ejemplo, es siempre preferible establecer el tipo @PathVariable ser de cadena a pesar de que espero que sea de otro tipo, como, un int? La documentación dice que la anotación @PathVariable puede ser de cualquier tipo simple, pero si Spring no puede convertir el id. De mascota no válido en un int (por ejemplo, el usuario ingresa algunos caracteres en lugar de números), arrojará una TypeMismatchException.
Entonces, ¿cuándo entra en juego el validador? ¿Dejo todos los tipos de @PathVariable en Cadena y tengo el validador para realizar la validación en los valores de Cadena, y si no hay un error de validación, entonces explícitamente convierte la Cadena al tipo deseado?
Gracias.
Este enfoque funciona si el usuario construye la URL mismos. Sin embargo, no estoy seguro de cómo funcionará si el valor de petId proviene de un campo de texto abierto enviado desde un formulario. – limc
, entonces eso no es un '@ PathVariable', sino un' @ RequestParam'. Y la validación debe hacerse en el lado del cliente, además de en el lado del servidor – Bozho
Gracias por su explicación perspicaz, supongo que me confundí entre @pathvariable y @requestparam. – limc