springmvc——萬事開頭難

springMVC差不多折騰了兩天的時間,因爲兩個星期前開始學習jsp,一個星期前開始學習servlet,當初配置servlet也是折騰了很久,配置文件翻來覆去的檢查了千千萬萬遍也沒有看出來到底是什麼問題,最後才發現其實就是版本不匹配,解決了一個攔路虎之後開心之餘還有一種日了狗的難以言表之情。

萬萬沒想到,這次接觸spring竟然與上次的servlet有異曲同工之妙。從web.xm,到sprinmvc.xml,再到applicationContext.xml,也是檢查了無數遍,也看了無數篇網上的經驗,博客,各種可能有用的方法統統試一遍,當然在嘗試的過程中也遇到了各種各樣的問題。比如No mapping found for HTTP request with URI,在springmvc配置文件里加上一句<mvc:default-servlet-handler/>就可以了,但是這樣就又出現一個問題,action這種動態資源就訪問不了了,然後再在剛纔的配置文件里加一句<mvc:annotation-driven />,諸如此類的問題,層出不窮。後來師兄給了一個配置好的spring的demo,而且相當簡單,只有兩個jsp頁面,但是Java代碼裏的action,service,dao,bean,還有springJDBC的配置都應有盡有,於是我對照着看了一下配置文件,沒!有!任!何!問!題!

於是我不再關注配置文件,我開始將重點轉移到action方法,在@requestmapping註解方法的第一句寫了一句輸出,執行工程以後發現我用ajax請求數據,發現控制檯啥都沒輸出,也就是說確實連方法都沒進去。但是又實實在在不是配置文件的問題。那隻能是路徑問題。

在我不懈的努(百)力(度)之下,終於發現了一個疑似解決方法,試了一下,果然如此。就是因爲@requestmapping裏設置的那個value值,一般都是/test.do這種,所以我也直接這麼寫的,以爲就是隨便命名,只要請求地址的時候對上就行了。原來根本不是這麼回事兒,你在jsp頁面裏請求test.do,只能請求到和這個jsp頁面同一目錄下的對應action,如果這個action不在同一目錄下,那麼@requestmapping的value值,就必須設置爲<jsp頁面所在目錄/test.do>,這樣才能直接用test.do的URL請求到。

可能在別人看來這是一個不該犯的錯誤,但是它真的用了我差不多兩天的時間。。。

不過還是上次那句話,也不是說就沒有收穫,經過這麼兩天的排查錯誤,我把spring配置文件也算是瞭解的差不多了。。。

No mapping found for HTTP request with URI

 No mapping found for HTTP request with URI

 No mapping found for HTTP request with URI

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