In any web application it is always recommended to display user friendly custom error page rather than displaying long programming error code. In Servlet you can also map the error page as in the web.xml
<error-page> <error-code>404</error-code> <location>/errorPages/404.jsp</location> </error-page> <error-page> <exception-type>java.lang.Exception</exception-type> <location>/errorPages/404.jsp</location> </error-page>
The above mapped error page will be directly rendered by the servlet container.
The Spring allows you to render more user friendly errors. The following is the way to handle exception in spring.
1. Write a ExceptionHandler class that extends the RuntimeException as
SpringException.java
package roseindia.exception;
public class SpringException extends RuntimeException {
private String exceptionMsg;
public SpringException(String exceptionMsg) {
this.exceptionMsg = exceptionMsg;
}
public String getExceptionMsg() {
return this.exceptionMsg;
}
public void setExceptionMsg(String exceptionMsg) {
this.exceptionMsg = exceptionMsg;
}
}
2. Then map this exception class in dispatcher servlet as
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="roseindia.exception.SpringException"> errorPage </prop> </props> </property> <property name="defaultErrorView" value="error" /> </bean>
Here errorPage is the name of the error page that displays the error
3. Apply your ligic in the controller as
if (registration.getName().length() < 5) {
throw new SpringException("Given name is too short");
} else {
model.addAttribute("name", registration.getName());
}
if (registration.getAge() < 10) {
throw new SpringException("Given age is too low");
} else {
model.addAttribute("age", registration.getAge());
}
The page which displays the error is as
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head>
<title>Spring MVC Exception Handling</title>
</head>
<body>
<h2>Spring MVC Exception Handling</h2>
<h3>${exception.exceptionMsg}</h3>
</body>
</html>
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.