在做項目的時候,我希望靜態(tài)資源由WEB服務(wù)器默認的Servlet來處理,所以我在配置文件中添加了如下的語句:
<mvc:default-servlet-handler/>
但是我再次運行項目,并訪問資源的時候,發(fā)現(xiàn)訪問@RequestMapping("/path1/path2")都不能訪問了,之前沒有添加的時候是能夠訪問的。
解決方案是,在配置文件中再添加一句代碼:
<mvc:annotation-driven/>
這樣做的原因是:
當兩種標簽都沒有的時候,框架默認注冊的有AnnotationMethodHandlerAdapter這個bean,所以能夠處理@RequestMapping這個注解,但是只配置了<mvc:default-servlet-handler/>時所注冊的三個bean都不能處理@RequestMapping注解,因此無法找到相應(yīng)的Controller,進而無法進行訪問路徑的映射,當兩種標簽都有的時候,<mvc:annotation-driven/>會注冊一個RequestMappingHandlerAdapter的bean,這個bean能夠處理@RequestMapping這個注解。