1、Map
当请求发送到这个方法的时候,通过对map进行键值对的赋值,在request域中添加参数以便前端使用
@RequestMapping(value = "/q")
public String test6(Map<String,Object> map) {
map.put("name", "fangqi");
return "success";
}
2、Model
@RequestMapping(value = "/qq")
public String test7(Model model) {
model.addAttribute("name", "123456");
return "success";
}
3、MoldelMap
@RequestMapping(value = "/qqq")
public String test8(ModelMap modelmap) {
modelmap.addAttribute("name","modelmap");
return "success";
}
4、ModelAndView
该类有两种设置跳转页面的方式:
1、setview方法:modelandview.setView(view);
2、构造方法:ModelAndView modelandview = new ModelAndView("success");
@RequestMapping(value = "/qqqq")
public ModelAndView test9() {
ModelAndView modelandview = new ModelAndView("success");
modelandview.addObject("name", "modelandview");
return modelandview;
}
四者关系
最终都是以BindingAwareModelMap类进行数据处理
5、@ModelAttribute()
该注解可以标注在方法和参数上
1、标记在类上
@ModelAttribute()
public void test11(Map<String,Object> map) {
System.out.println("@ModelAttribute");
Book book = new Book("fang","qiming","100","清华大学出版社");
map.put("book", book);
System.out.println(book);
}
@RequestMapping(value = "/qqqqq")
public String test10(@ModelAttribute("book")Book book) {
System.out.println(book);
return "success";
}
当前端页面把qqqqq请求交给test10()方法处理的时候,标注了@ModelAttribute()注解的方法提前运行,把book信息存入到BindingAwareModelMap类中,在整个会话时都可以使用。