SpringMvc Model與ModelAndView
阿新 • • 發佈:2019-01-02
在springmvc中,有兩種方式將資料由伺服器傳送到jsp
1.ModelAndView
@RequestMapping("/testModelandView") public ModelAndView testModel(){ ModelAndView modelAndView = new ModelAndView(); //將資料存在了request域中 modelAndView.addObject("name","DELL"); modelAndView.setViewName("/result.jsp"); return modelAndView; }
2.model(相當於一個map)
model的例項是springmvc框架自動建立並作為控制器方法引數傳入,使用者無需自己建立
@RequestMapping("/testModel")
public String testmodel2(Model model){
//將資料存在了request域中
model.addAttribute("name","lenovo");
return "/result.jsp";
}
兩種方法都是將資料存在了request域中 在jsp中可以使用el表示式進行取值
Model中的方法
1.addAttribute(String attributeName,Object attributeValue);新增鍵值屬性對
2.asMap(); 將當前的model轉成map
model.addAttribute("name","lenovo");
System.out.println(model.asMap());
/*
*{name=lenovo}
*/
3.addAttribute(Object o);將一個物件存在model當中
既然把物件存在了model中,說model相當於一個map,也就是把物件放在了map裡面,map是有key、value的,value是這個物件,那麼key是什麼?這個物件所在的類的類名,且把類名的第一個字母小寫作為其key值
@RequestMapping("/testModel")
public String testmodel2(Model model){
//將資料存在了request域中
Goods mygoods = new Goods();
mygoods.setName("筆記本");
mygoods.setPrice(20);
model.addAttribute(mygoods);
System.out.println(model.asMap());
return "/result.jsp";
}
/*
*{goods=Goods{name='筆記本', price=20}}
*/
4.addAllAttribute(Map<String,?> hashmap);向model中新增一個map
將map中的內容複製到當前的model中,如果當前的model中含有相同的key值,則前者會被後者覆蓋
@RequestMapping("/testModel")
public String testmodel2(Model model){
//將資料存在了request域中
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("name","dell");
hashMap.put("price",20);
hashMap.put("name","lenovo");
model.addAllAttributes(hashMap);
System.out.println(model.asMap());
return "/result.jsp";
}
/
*{price=20, name=lenovo}
*/
5.addAllAttribute(Collection list);向model中新增一個集合
以集合當中的型別作為key,將所提供的Collection中的屬性複製到model中,有相同型別,則會覆蓋
@RequestMapping("/testModel")
public String testmodel2(Model model){
//將資料存在了request域中
ArrayList<Object> list = new ArrayList<>();
list.add("name");
list.add(10);
list.add("goods");
model.addAllAttributes(list);
System.out.println(model.asMap());
return "/result.jsp";
}
/
*{string=goods, integer=10}
*/
6.mergeAttribute(Map <String,?> hashmap)
同addAllAttribute相同,不過是有key值相同的不會覆蓋以前的
7.containsAttribute(String name)
判斷model中是否包含一個鍵值對 返回布林型別