If a required @RequestParam is not present in the request, Spring will throw a MissingServletRequestParameterException exception. You can define an @ExceptionHandler in the same controller or in a @ControllerAdvice to handle that exception:
@ExceptionHandler(MissingServletRequestParameterException.class)
public void handleMissingParams(MissingServletRequestParameterException ex) {
String name = ex.getParameterName();
System.out.println(name + " parameter is missing");
// Actual exception handling
}
I want to return let’s say a different page. How to I achieve this?
As the Spring documentation states:
Much like standard controller methods annotated with a
@RequestMapping
annotation, the method arguments and return values of
@ExceptionHandlermethods can be flexible. For example, the
HttpServletRequestcan be accessed in Servlet environments and the
PortletRequestin Portlet environments. The return type can be a
String, which is interpreted as a view name, aModelAndViewobject, a
ResponseEntity, or you can also add the@ResponseBodyto have the
method return value converted with message converters and written to
the response stream.