Add error message for missing servlet request param.
The DefaultHandlerExceptionResolver now provides an error message in addition to setting the status of the response. Issue: SPR-9312
This commit is contained in:
@@ -40,7 +40,7 @@ public class MissingServletRequestPartException extends ServletException {
|
|||||||
private final String partName;
|
private final String partName;
|
||||||
|
|
||||||
public MissingServletRequestPartException(String partName) {
|
public MissingServletRequestPartException(String partName) {
|
||||||
super("Request part '" + partName + "' not found.");
|
super("Required request part '" + partName + "' is not present.");
|
||||||
this.partName = partName;
|
this.partName = partName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
|
|||||||
protected ModelAndView handleMissingServletRequestParameter(MissingServletRequestParameterException ex,
|
protected ModelAndView handleMissingServletRequestParameter(MissingServletRequestParameterException ex,
|
||||||
HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
|
HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
|
||||||
|
|
||||||
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage());
|
||||||
return new ModelAndView();
|
return new ModelAndView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -384,7 +384,7 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes
|
|||||||
*/
|
*/
|
||||||
protected ModelAndView handleMissingServletRequestPartException(MissingServletRequestPartException ex,
|
protected ModelAndView handleMissingServletRequestPartException(MissingServletRequestPartException ex,
|
||||||
HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
|
HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
|
||||||
response.sendError(HttpServletResponse.SC_BAD_REQUEST);
|
response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage());
|
||||||
return new ModelAndView();
|
return new ModelAndView();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,6 +98,7 @@ public class DefaultHandlerExceptionResolverTests {
|
|||||||
assertNotNull("No ModelAndView returned", mav);
|
assertNotNull("No ModelAndView returned", mav);
|
||||||
assertTrue("No Empty ModelAndView returned", mav.isEmpty());
|
assertTrue("No Empty ModelAndView returned", mav.isEmpty());
|
||||||
assertEquals("Invalid status code", 400, response.getStatus());
|
assertEquals("Invalid status code", 400, response.getStatus());
|
||||||
|
assertEquals("Required bar parameter 'foo' is not present", response.getErrorMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -156,6 +157,7 @@ public class DefaultHandlerExceptionResolverTests {
|
|||||||
assertNotNull("No ModelAndView returned", mav);
|
assertNotNull("No ModelAndView returned", mav);
|
||||||
assertTrue("No Empty ModelAndView returned", mav.isEmpty());
|
assertTrue("No Empty ModelAndView returned", mav.isEmpty());
|
||||||
assertEquals("Invalid status code", 400, response.getStatus());
|
assertEquals("Invalid status code", 400, response.getStatus());
|
||||||
|
assertEquals("Required request part 'name' is not present.", response.getErrorMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user