annotationdriven
處理靜態(tài)資源
優(yōu)雅的 REST 風(fēng)格的資源URL 不希望帶 .html 或 .do 等后綴
若將 DispatcherServlet 請(qǐng)求映射配置為 /,則 Spring MVC 將捕獲 WEB 容器的所有請(qǐng)求,包括靜態(tài)資源的請(qǐng)求, SpringMVC 會(huì)將他們當(dāng)成一個(gè)普通請(qǐng)求處理,因找不到對(duì)應(yīng)處理器將導(dǎo)致錯(cuò)誤。
可以在 SpringMVC 的配置文件中配置 <mvc:default-servlet-handler/> 的方式解決靜態(tài)資源的問(wèn)題:
–??<mvc:default-servlet-handler/> 將在 SpringMVC 上下文中定義一個(gè) DefaultServletHttpRequestHandler,它會(huì)對(duì)進(jìn)入 DispatcherServlet 的請(qǐng)求進(jìn)行篩查,如果發(fā)現(xiàn)是沒(méi)有經(jīng)過(guò)映射的請(qǐng)求,就將該請(qǐng)求交由 WEB 應(yīng)用服務(wù)器默認(rèn)的 Servlet 處理,如果不是靜態(tài)資源的請(qǐng)求,才由 DispatcherServlet 繼續(xù)處理
–??一般 WEB 應(yīng)用服務(wù)器默認(rèn)的 Servlet 的名稱都是 default。若所使用的 WEB 服務(wù)器的默認(rèn) Servlet 名稱不是 default,則需要通過(guò) default-servlet-name 屬性顯式指定
關(guān)于 mvc:annotation-driven
<mvc:annotation-driven /> 會(huì)自動(dòng)注冊(cè)RequestMappingHandlerMapping 、RequestMappingHandlerAdapter 與 ExceptionHandlerExceptionResolver? 三個(gè)bean。
還將提供以下支持:
支持使用 ConversionService 實(shí)例對(duì)表單參數(shù)進(jìn)行類型轉(zhuǎn)換
支持使用 @NumberFormat annotation、@DateTimeFormat 注解完成數(shù)據(jù)類型的格式化
支持使用 @Valid 注解對(duì) JavaBean 實(shí)例進(jìn)行 JSR 303 驗(yàn)證
支持使用 @RequestBody 和 @ResponseBody 注解
既沒(méi)有配置 <mvc:default-servlet-handler/> 也沒(méi)有配置 <mvc:annotation-driven/>
配置了 <mvc:default-servlet-handler/>? 但沒(méi)有配置 <mvc:annotation-driven/>
既配置了 <mvc:default-servlet-handler/> ?又配置 <mvc:annotation-driven/>
<mvc:annotation-driven>
穿越成功,其它失效需要添加<mvc:annotation-driven>
靜態(tài)資源導(dǎo)入,需要添加<mvc:annotation-driven>
自定義類型轉(zhuǎn)換器的時(shí)候,該標(biāo)簽需要引用我們的自定義類
以新增employee操作為例,Debug選擇save方法
1 AnnotationMethodHandlerAdapter
2 RequestMappingHandlerAdapter
1 什么都沒(méi)有,靜態(tài)資源導(dǎo)入出錯(cuò),delete功能不行了。
2 只有<mvc:default-servlet-handler/>,注解類失效
3 所以兩個(gè)都需要有
?
總結(jié)
以上是生活随笔為你收集整理的annotationdriven的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。