sirve - Spring MVC-Código de estado HTTP 400(Solicitud incorrecta) para el campo faltante que se define como no requerido
validaciones en spring mvc (1)
Tengo la aplicación Spring MVC con este método de control.
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
...
return "redirect:/showAll/";
}
En mi JSP tengo un formulario HTML estándar que está publicando un valor llamado "número" para el método del controlador anterior. Sin embargo, si dejo fuera el valor (no ingrese nada en el campo de texto) y PUBLICO los datos al controlador, antes de que se llame al método del controlador, mi navegador muestra
HTTP Status 400 - Required Long parameter ''number'' is not present
aunque la anotación del método del controlador define claramente el parámetro "número" como no requerido.
¿Alguien tiene una ligera idea de lo que podría estar pasando?
Gracias.
PD: la excepción que se lanza es la siguiente:
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter ''number'' is not present
EDITAR: Este es un error de Spring 3.2.3.RELEASE ( ver aquí ). Con la versión 3.1.4.RELEASE ya no tengo este problema.
Encontré la misma situación, y esto sucede cuando tu parámetro está presente en la solicitud con un valor vacío.
Es decir, si su cuerpo POST contiene "número =" (con valor vacío), Spring lanza esta excepción. Sin embargo, si el parámetro no está presente en absoluto en la solicitud, debería funcionar sin ningún error.