SpringMVC数据输出相关知识总结
短信预约 -IT技能 免费直播动态提醒
一、数据输出
SpringMVC将数据携带给页面的储存工具,有三种,map,ModelMap,model,它们在底层实质还是使用到了BindingAwareModelMap,对数据进行存储:
此外,也可以使用ModelAndView携带数据回传页面,实现代码如下
@RequestMapping("/handle01")
public String handler01(Map<String, String> map) {
map.put("msg","你好1!");
return "success";
}
@RequestMapping("/handle02")
public String handler02(Model model) {
model.addAttribute("msg","你好2");
return "success";
}
@RequestMapping("/handle03")
public String handler03(ModelMap modelMap) {
modelMap.addAttribute("msg","你好3");
return "success";
}
@RequestMapping("/handle04")
public ModelAndView handler(){
ModelAndView mv = new ModelAndView("success");
mv.addObject("msg","你好04");
return mv;
}
二、@ModelAttribute注解
使用@ModelAttribute注解,可以得到请求参数中的某个对象,而不是自己new出来的对象,所有带有ModelAttribute注解的方法都会提前于目标方法运行,将对象放置在request域中,然后在目标方法中获取,代码示例:
// 先于目标方法执行,获取了数据库中的斗个对象的信息
@ModelAttribute
public void hahaMyModelAttribute(Map<String, Object> map){
Book book = new Book(100, "西游记", "吴承恩", 98, 10, 98.98);
System.out.println("数据库中查到的图书信息是:"+book);
map.put("haha", book);
b1 = book;
o1 = map;
System.out.println("modelAttribute方法...查询了图书并给你保存起来了...他用的map的类 型:"+map.getClass());
}
}
// 目标方法,在目标方法中使用查询到的对象
@RequestMapping("/updateBook")
public String updateBook(@ModelAttribute("haha")Book book,Map<String, Object> model){
o2 = model;
b2 = book;
Object haha = model.get("haha");
//System.out.println("传入的model:"+model.getClass());
System.out.println("o1==o2?"+(o1 == o2));
System.out.println("b1==b2?"+(b1 == b2)+"-->"+(b2 == haha));
System.out.println("页面要提交过来的图书信息:"+book);
return "success";
}
这样做的好处在于,避免了全字段修改,不给值的地方Spring会默认使用null进行代替,这回在修改之前每个键值对都有值。
到此这篇关于SpringMVC数据输出相关知识总结的文章就介绍到这了,更多相关SpringMVC数据输出内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341