1. 程式人生 > >springMVC學習筆記二(獲取引數,返回Model資料)

springMVC學習筆記二(獲取引數,返回Model資料)

Controller如何獲取引數           

1利用原有的Servlet方法,使用HttpServletRequest

2利用@RequestParam註解 @RequestParam("username")String name,當usernamerequest中不存在,會丟擲異常,可以使用@RequestParam(value="username" required=false   default=" 預設值")這樣請求有值就取,沒值就不取

3使用實體類封裝  

--寫一個實體類,然後新增setter,getter方法

--實體類的setter方法與請求的引數保持一致

Controller返回引數值

方式一:

Controller返回型別為ModelAndView  =================》瞭解

Map<String,Object> map= new HashMap<String,Object>();

map.put(String,Object);

return ModelAndView(String jsp名,map);

方式二:

***Controller方法中加Model引數如:===================》建議使用

public String checkLogin(Model model){

model.addAttribute(key,value);

return "ok";

}

方式三:

利用@ModelAttribute註解,可以將方法引數放入Model

@ModelAttribute("name")String username username值放入Model

keyname,等價於model.addAttribute("name",username);

@ModelAttribute()的另一種用法,放在方法上面

程式已進入controller首先執行@ModelAttribute()再執行@RequestMapping

@ModelAttribute"msg"     //相當於model.addAttribute("msg",findMsg())

public String findMsg(){

return "你好";

}

@RequestMapping()

public String Controller(){  }  

--------------------------------------------------------------------------

Session中儲存資料

a 利用Servlet方案,使用HttpSession引數

b 利用@SessionAttribute(“name”)標記,在類定義前使用,含義是將Model中儲存的keyname的資訊,由Request範圍轉換為Session範圍,

  在使用前需要在Model中儲存了name一組值才可以

@SessionAttribute("name")       @SessionAttribute({"name","age"})      

public class LoginController(){

public String(){

model.addAttribute("name",Object);

}

}