問題: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分別為:
- http://localhost:8080/book/title
- 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"; }
@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”參數即可匹配。