springMVC 訪問404


問題:404

但是其他的controller可以訪問!!!

 

代碼:

controller所在包路徑如下:

 

mvc-spring.xml中的配置如下:

此時就出現了以上的錯誤:404

 

解決:

包不對,沒有掃描到我測試controller所在的包,加上**即可!

以上及解決了問題!!!

以上原創!!!

 

 

 

 

 

================================================================

以下轉自:http://my.oschina.net/zhdkn/blog/316530

另附一下springMVC中的RequestMapping的一些用法:

對於各種注解而言,排第一的當然是“@Controller”,表明某類是一個controller。

“@RequestMapping”請求路徑映射,如果標注在某個controller的類級別上,則表明訪問此類路徑下的方法都要加上其配置的路徑;最常用是標注在方法上,表明哪個具體的方法來接受處理某次請求。

 
@Controller
@RequestMapping(value="/book")
public class BookController {
     
    @RequestMapping(value="/title")
    public String getTitle(){
        return "title";
    }
     
    @RequestMapping(value="/content")
    public String getContent(){
        return "content";
    }
}

 

由於BookController類加了value="/book"的“@RequestMapping”的注解,所有相關路徑都要加上"/book",即請求的url分別為:

  1. http://localhost:8080/book/title
  2. http://localhost:8080/book/content

"@RequestMapping"的value值前后是否有“/”對請求的路徑沒有影響,即value="book" 、"/book"、"/book/"其效果是一樣的

 

"@RequestMapping" 的屬性

    • value: 指定請求的實際url
      1. 普通的具體值。如前面的value="/book"。
      2. 含某變量的一類值
       
      @RequestMapping(value="/get/{bookId}")
          public String getBookById(@PathVariable String bookId,Model model){
              model.addAttribute("bookId", bookId);
              return "book";
          }
      路徑中的bookId可以當變量,@PathVariable 注解即提取路徑中的變量值
      3.ant風格
      @RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
      @RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
      @RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
      @RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant風格和URI模板變量風格可混用;

      4. 含正則表達式的一類值
      @RequestMapping(value="/get/{idPre:\\d+}-{idNum:\\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,這樣可以設計更加嚴格的規則。
      可以通過@PathVariable 注解提取路徑中的變量(idPre,idNum)

      5. 或關系
      @RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都會映射到該方法上

    • method:  指定請求的method類型, GET、POST、PUT、DELETE等;
      @RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})

    • params
      @RequestMapping(params="action=del"),請求參數包含“action=del”,如:http://localhost:8080/book?action=del

    • headers
      @RequestMapping(value="/header/id", headers = "Accept=application/json"):表示請求的URL必須為“/header/id 且 請求頭中必須有“Accept =application/json”參數即可匹配。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM