SpringMVC 的2個配置問題

這幾天自己使用Maven配置SpringMVC+Shiro,碰到兩個問題。都耗費了我幾個小時的時間,而且最後發現都屬於配置上的細節問題。在這裏記錄下來。

1.找不到Action。

情況:使用註解配置Controller,並且在對應的方法上也寫了@RequestMapping,並且mvc配置文件裏有配置<mvc:annotation-driven/>和<context:component-scan>兩個標籤。怎麼都找不到。

問題還是在<context:component-scan>這個標籤上。

因爲是在學習Shiro,所以springmvc的配置文件是直接從張開濤的Shiro項目中拷貝過來的。他的配置文件是這樣的:

<context:component-scan base-package="com.yrsoft" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

而我在使用的時候把中間的兩個註釋掉了。變成了

<context:component-scan base-package="com.yrsoft" use-default-filter="false">       
</context:component-scan>


找問題的時候突然覺得這個use-default-filters很可疑,去掉這個屬性之後果然就可以了。或者寫成如下的形式,或者第一種形式。總之第二種形式是錯誤的。

<context:component-scan base-package="com.yrsoft" >
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>


根據結果來看,我註釋掉的兩行應該是配置spring掃描固定的註解的,猜測這樣應該會提高一些效率。具體提升多少這裏不做研究。



2.找不到靜態資源。

情況:使用maven構建了項目,在webapp下創建了resource文件夾,並且裏面放了jquery.js和test.jsp。結果jsp文件能訪問,使用jquery文件的頁面加載JQ的時候總是報404.

剛開始以爲是maven或者Shiro配置問題。後來搜索了半天,發現還是MVC的配置問題。

在mvc的配置文件里加上:

<mvc:resources location="/resource/" mapping="/resource/**"/>
這樣就可以了。

不明白爲什麼靜態資源就一定要寫這個配置。不知道是出於什麼考慮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章