1. 程式人生 > >一次@Controller引發的血案

一次@Controller引發的血案

request mapping handle

今天收到了一份spring mvc的工程,看裏面沒有加controller,想著加個默認的Controller

技術分享圖片

明眼人是不是一眼就看到問題所在了?

如果沒有發現問題的,請跟著我的思路一起混亂下去

  1. 啟動工程

    沒報錯,說明其他的結構沒問題

  2. 打開瀏覽器,輸入http://localhost:8080/XXXXX/login

    誒?沒有正確顯示頁面?

  3. 開啟混亂之旅

    1. 首先,最先想起的是component-scan的配置問題,因為這種情況居大多數,很可能路徑匹配不一致

      但確認了一下,沒問題,又仔細一個一個字母對比了一下,還是沒問題

    2. 哎?難道是mappinghandler的使用有問題,沒有使用annotation method的mappinghandler?

      仔細一看,沒問題啊,是正確的:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

    3. 這是怎麽回事呢難道是annotation-config沒有開啟?

      mvc配置中找了下,真沒有欸?加上試試,還是不好使,這是為什麽呢

      又看了下application.xml,哦其中已經加了annotation-config了,應該不是這個問題

    4. 這樣會不會是requestmappinghandler用的有問題呢,換成default的試試?

      換了一下,換成mvc:annotation-driven,再嘗試,還hi是不好用

    5. 不行了,不應該啊,整個過程就是掃描bean,handleMapping,我的controller已經加了requestMapping了啊,為什麽不好用呢, 是不是工程設置有問題

      project -> properties 看了一下Java build path中的設定,誒?還是對啊,沒錯啊

      project -> properties 不信邪,又確認了一下project facets,還是對啊,是dynamic web module啊

    6. 這時候就有點蒙圈了,想不出來,百度吧,

      搜,“RequestMappingHandlerMapping 匹配不到” 沒什麽有意義的結果。。。

      等等等,搜了一大堆,搜到了一個在mapping中添加<property name="useSuffixPatternMatch" value="false"/>這個參數的

      試了一下,還是不好用

    7. 我靠,崩潰了啊,什麽情況,扭曲了我的spring mvc觀念啊

    8. 休息一下,去個廁所,冷靜一下

    9. 回來後有確認了一邊,還是沒看出問題所在,接著尋求網絡的幫助吧

      搜著搜著,突然之間看到一個網頁,上面@controller被特別標註了

    10. 臥槽,我是不是沒加controller,確認了一下,果然額,魔障了

一次@Controller引發的血案