Hola usuario de nuestra web, hallamos la respuesta a tu interrogante, desplázate y la verás más abajo.
Solución:
Si es necesario @RequestParam
no está presente en la solicitud, Spring lanzará un MissingServletRequestParameterException
excepción. Puede definir un @ExceptionHandler
en el mismo controlador o en un @ControllerAdvice
para manejar esa excepción:
@ExceptionHandler(MissingServletRequestParameterException.class)
public void handleMissingParams(MissingServletRequestParameterException ex)
String name = ex.getParameterName();
System.out.println(name + " parameter is missing");
// Actual exception handling
Quiero volver digamos una página diferente. ¿Cómo lo logro?
Como dice la documentación de Spring:
Al igual que los métodos de controlador estándar anotados con un
@RequestMapping
anotación, los argumentos del método y los valores de retorno de
@ExceptionHandler
los métodos pueden ser flexibles. Por ejemplo, el
HttpServletRequest
se puede acceder en entornos Servlet y el
PortletRequest
en entornos Portlet. El tipo de retorno puede ser un
String
, que se interpreta como un nombre de vista, aModelAndView
objeto, un
ResponseEntity
, o también puede agregar el@ResponseBody
para convertir el valor de retorno del método con convertidores de mensajes y escribirlo en el flujo de respuesta.
Una alternativa
Si usa el @ControllerAdvice en su clase y si extiende la clase base Spring ResponseEntityExceptionHandler. Se ha creado una función predefinida en la clase base para este propósito. Tienes que anularlo en tu controlador.
@Override
protected ResponseEntity
Esta clase base es muy útil, especialmente si desea procesar los errores de validación que crea el marco.
Puedes hacer esto con Primavera 4.1 en adelante y Java 8 aprovechando el Opcional escribe. En tu ejemplo eso significaría tu @RequestParamString
tendrá ahora tipo de Optional
.
Eche un vistazo a este artículo para ver un ejemplo que muestra esta función.
Agradecemos que quieras apoyar nuestro análisis añadiendo un comentario y dejando una valoración te damos la bienvenida.