处理模型数据及ModelAttribute等注解的使用

使用ModelAndView

  1. 方法的返回值类型为ModelAndView
  2. ModelAndView支持自动添加前后缀,可在初始化对象时传入对应的页面名称
  3. 通过addObject(key,value)添加传回数据
@RequestMapping(value="testModelAndView")
	public ModelAndView testModelAndView() {
		Student student = new Student();
		student.setId(1);
		student.setName("zs");
		ModelAndView mv = new ModelAndView("success");
		mv.addObject("student", student);
		return mv;
	}

使用ModelMap、Model、Map

  1. 返回值参数为对应路径的名称
  2. addAttribute(key,value)/put(key,value)设置对应的参数
	@RequestMapping(value="testModelMap")
	public String testModelMap(ModelMap mm) {
		Student student = new Student();
		student.setId(1);
		student.setName("zs");
		mm.addAttribute("student1", student);
		return "success";
	}
	@RequestMapping(value="testModel")
	public String testModel(Model mo) {
		Student student = new Student();
		student.setId(1);
		student.setName("zs");
		mo.addAttribute("student3", student);
		return "success";
	}
	@ModelAttribute		// 在任何一次请求前,都会先执行@ModelAttribute修饰的方法
	public void queryStudentById(Map<String , Object> map) {
		Student student = new Student();
		student.setId(31);
		student.setName("zs");
		student.setAge(23);
		map.put("student", student);
	}

ModelAttribute前置操作

  1. 给前置操作添加注解@ModelAttribute
  2. 通过map.(key,value)传值
    注意:
    i.在任何一次请求前,都会先执行@ModelAttribute修饰的方法
    ii.传参时可约定可设置。约定为map的key为对应方法的类型的单词首字母小写;规定约束map的key为对应方法@ModelAttribute(“xxx”)注解中的字符串一致
    iii.运行时先运行前置操还,将值赋值给对应方法的变量,然后再将前台传递的参数赋值给对应的对象
    例如前置操作student对象的name为zs,前端填写的字段值为ls,则在执行输出时为31-ls-23
	@ModelAttribute		// 在任何一次请求前,都会先执行@ModelAttribute修饰的方法
	public void queryStudentById(Map<String , Object> map) {
		Student student = new Student();
		student.setId(31);
		student.setName("zs");
		student.setAge(23);
//		map.put("student", stud ent);	//约定,map的key就是方法参数类型的首字母小写,则会将参数传递给对应
		map.put("stu", student);
	}
	
	//修改
	@RequestMapping(value="testModelAttribute")
	public String testModelAttribute(@ModelAttribute("stu")Student student) {
		System.out.println(student.toString());
		return "success";
	}
<form action="Handler/testModelAttribute" method="post">
		编号:<input name="id" type="hidden" value="31"/>
		姓名:<input name="name" type="text"/>
		<input type="submit" value="修改"/>
	</form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值