1.視圖解析器(主要是MVC配置檔案中配置)将controller傳回的String類型資訊到視圖解析器組成一個完整的位址,進行請求轉發
本質就是将InternalResourceViewResolver進行IOC布置到核心容器中,自己對該類的屬性進行注入
<!--視圖解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>//字首
<property name="suffix" value=".jsp"></property>//字尾
</bean>
2.類型轉換解析器 SpringMVC中一般自帶了一些類型轉換,但有時候我們可以進行配置轉換方法
注意 :要使用自定義轉換器,那麼開啟mvc注解驅動時,需要定義conversion-service屬性
- 首先需要自己定義一個實作類,實作Converter接口,重寫轉換方法,定義規則
- 然後在mvc配置檔案中配置類型轉換解析器
進行了ConversionServiceFactoryBean類的IOC,對converters數組類型屬性進行指派,自定義轉換器是可以多個的
開啟注解驅動:
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean" ></mvc:annotation-driven>
類型轉換器:
<bean class="org.springframework.context.support.ConversionServiceFactoryBean" id="conversionServiceFactoryBean">
<property name="converters">
<array>
<!--配置自定義轉器-->
<bean class="com.ls.Converter.StringToDateConverter"></bean>
</array>
</property>
</bean>
3.檔案上傳解析器 當檔案上傳時需要(這個除了屬性可以改變,id是寫死的multipartResolver,使用其他的運作時會出錯)
将CommonsMultipartResolver類IOC,并注入相應屬性例如最大大小 最小大小這些
<!--檔案上傳解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--最大上傳檔案大小 bt 1024*1024 5M-->
<property name="maxUploadSize" value="5242880"></property>
</bean>
4.異常解析器
最為友善,自己定義異常類,隻要實作HandlerExceptionResolver接口,重寫resolveException方法定義異正常則,然後将此實作類部署到IOC就可以

5.mvc攔截器
1. 實作handlerInterceptor接口,重寫方法(不自動提示,快捷鍵alt+insert選擇)
2. 配置攔截器解析器 mvc:interceptors标簽
* 實作handlerInterceptor接口 重寫方法 不自動提示 是alt+insert選擇重寫 (一定要注意多個攔截器之間的攔截順序)
* preHandle方法 在執行controller之前執行
* postHandle方法 在執行完成controller之後執行
* afterCompletion方法 在試圖完成之後執行
* 傳回值false帶代表攔截 true就是放行 隻有放行才能繼續下一步
多個攔截器執行時:preHandler方法先後執行
postHandler方法,從後往前執行
afterCompletion方法,從後往前執行
配置檔案:
<!--攔截器 多個自定義攔截器依次執行 但執行方法時順序不一緻-->
<mvc:interceptors>
<mvc:interceptor>
/*
-攔截路徑
/*代表比對一級 eg:/user
/**代表比對多級 eg:/user/find
<mvc:mapping path="/**"/>
*/
<!--自定義攔截器配置ioc-->
<bean id="interceptor" class="com.ls.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
<mvc:interceptors>
執行順序效果圖: