在spring mvc中,对异常的处理,可以小结有如下两类写法:
1 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.sql.SQLException">showDBError</prop>
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">maxUploadExceeded</prop>
</props>
</property>
</bean>
这里,用的是.SimpleMappingExceptionResolver,并且为每个异常都专门设置了一个单独的.jsp文件,比如这里的showDBerror.jsp
去处理,这里的上传文件超过大小的话,是个异常,也用另外的一个maxuploadexceed来处理了.
2 ,还可以这样,自己实现.HandlerExceptionResolver类
1 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.sql.SQLException">showDBError</prop>
<prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">maxUploadExceeded</prop>
</props>
</property>
</bean>
这里,用的是.SimpleMappingExceptionResolver,并且为每个异常都专门设置了一个单独的.jsp文件,比如这里的showDBerror.jsp
去处理,这里的上传文件超过大小的话,是个异常,也用另外的一个maxuploadexceed来处理了.
2 ,还可以这样,自己实现.HandlerExceptionResolver类
public class MyHandlerExceptionResolver implements HandlerExceptionResolver {
private Log log = LogFactory.getLog(getClass());
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
log.warn("Handle exception: " + ex.getClass().getName());
Map model = new HashMap();
model.put("ex", ex.getClass().getSimpleName());
model.put("error", ex.getMessage());
return new ModelAndView("error", model);
}
这样的话,就统一把异常都交个error.jsp这个view层去显示了,当然这里可以再包装一下了