springmvc<三> 异常解析链与视图解析链
1.1.7. Exceptions
- 如果异常被Controller抛出,则DispatchServlet委托异常解析链来处理异常并提供处理方案(通常是一个错误的响应)
springmvc提供的HandlerExceptionResolver实现
- SimpleMappingExceptionResolver 异常类名称和错误视图名称之间的映射,在浏览器中渲染错误页面时有用
- DefaultHandlerExceptionResolver 解析由springmvc抛出的异常并与HTTP状态码映射
- ResponseStatusExceptionResolver 用注解@ResponseStatus解析异常并基于注解中的值映射异常到HTTP状态码
- ExceptionHandlerExceptionResolver 在有@Controller 或 @ControllerAdvice 注解的类中调用有@ExceptionHandler注解的方法来处理异常
1.1.8. View Resolution
- Spring MVC定义了ViewResolver和View接口,这些接口使您可以在浏览器中呈现模型,而无需将您与特定的视图技术联系在一起。
ViewResolver提供了视图名称和实际视图之间的映射。
在移交给特定的视图技术之前,视图解决了数据准备问题。
- AbstractCachingViewResolver AbstractCachingViewResolver的子类缓存它们解析的视图实例。
- ResourceBundleViewResolver
- UrlBasedViewResolver ViewResolver接口的简单,似乎是基类
- InternalResourceViewResolver UrlBasedViewResolver的子类,它支持InternalResourceView(实际上是Servlet和JSP)以及诸如Jstl视图和Tiles视图的子类。
InternalResourceViewResolver需放最后一个,不管资源是否实际存在它都会去解析资源。
- FreeMarkerViewResolver UrlBasedViewResolver的便利子类,支持FreeMarkerView及其自定义子类。
- ContentNegotiatingViewResolver ViewResolver接口的实现,该接口根据请求文件名或Accept标头解析视图。