Saltar al contenido

Java Spring: cómo manejar los parámetros de solicitud requeridos que faltan

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
, a ModelAndView 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 handleMissingServletRequestParameter(MissingServletRequestParameterException ex, HttpHeaders headers, HttpStatus status, WebRequest request) 
    String name = ex.getParameterName();
    logger.error(name + " parameter is missing");

    return super.handleMissingServletRequestParameter(ex, headers, status, request);


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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Respuestas a preguntas comunes sobre programacion y tecnología