SpringMVC使用(一)——@RequestMapping處理請求

1.@RequestMapping  用法 

SpringMVC中,@RequestMapping用來處理請求,比如XXX.do 

 



2:接收帶參數的請求,接收用戶請求參數 值 

請求1: /test/start.do?name=zhangsan 
請求2: /test/start/zhangsan.do 

在請求2中 將參數作爲請求URL傳遞,感覺用的不習慣  

採用 URL模板 

@RequestMapping("/start/{name}")//這個name  隨便  啥都可以

  1.  public String start(@PathVariable("name") string name){       //和上面的對應  
  2.      return ;//方法體裏面就可以直接獲得參數  
  3. }  



包含多個  @RequestMapping ("/start/{name}/{age}") 

3不同請求方法,用不同處理方法   get  post 

   @RequestMapping (value="/start" ,method=RequestMethod.GET)//處理post 就換成 POST 

另外,如果Servlet想要做到/test/start/zhangsan.do這種請求的話 

需要 URL 重寫才能做到,或者用 /start/* 作爲 Servlet 請求控制器,在其中進行截取和判斷。 
第二種方法:自己寫一個 URL 重寫的 Filter 
第三種方法:使用現成的 urlrewriter 工具 
第四種方法:使用 Web 服務器的 URL 重寫功能 

Servlet中用Filter重寫示例 
web.xml中: 

 

 

 

controller接收參數的使用

springmvc提供了@RequestParam註釋幫助我們獲取參數。

用法@RequestParam("接收的參數名")

例如:

    @RequestMapping(params="servlet=login")
    public String login(@RequestParam("username")String username,@RequestParam("password")String password,HttpServletRequest request,ModelMap map){
         //處理登錄邏輯,省略
        return "success";
    }

當客戶端的URL提交了username參數,password參數,那麼我們的Controller就可以接收並處理了。

要注意,提交的username參數和password參數不可以是null,即一定要傳這兩個參數,不然會拋異常。

另外,@RequestParam可以省略參數名,那麼就會以它註釋的變量名作爲參數名。

 

視圖名的確定。

spring mvc可以通過可以通過多種方式確定視圖名,在前面的例子中,方法無返回值,視圖名更具請求參數確定。Controller方法還是返回一個String類型的值作爲視圖名

@RequestMapping("edit")

    public void edit(@RequestParam int id) {...}

則返回的視圖爲../edit.jsp

發佈了23 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章