当我们从前台往后台传入一个对象模型的时候,他会自动将这个模型存到model中
比如这里我们通过表单向后台传了一个对象过去
<form action="${pageContext.request.contextPath}/request1.action" method="get"> 姓名:<input name="user_name" type="text"> 年龄:<input name="user_age" type="text"> <input type="submit" value="提交"> </form>我们通过一个controller来接收,这里的user是会自动存入到model的request域中
@RequestMapping(value = {"request1"}) public String test6(@ModelAttribute("biguser") User user,Model model){ System.out.println("======="); System.out.println(model.asMap()); return "/resoult.jsp"; }如果让其自动存入,那么他的key值是这个对象类型的首字母小写作为key,@ModelAttribute就可以指定这个key值,比如这里我们指定这个key为biguser
注意点:标记了@ModelAttribute的注解后,往model存的数据如果是同名的key,那么他们并不是真正的替换,而是把有的替换,没有的继续保留原来的。
首先,我们随意定义一个方法,在它上面贴上@ModelAttribute注解
@ModelAttribute public void modelatt(){ System.out.println("执行了方法"); }在前端有一个表单
<form action="${pageContext.request.contextPath}/request1.action" method="get"> 姓名:<input name="user_name" type="text"> 年龄:<input name="user_age" type="text"> <input type="submit" value="提交"> </form>后台有个方法进行接收
@RequestMapping(value = {"request1"}) public String test6(@ModelAttribute("biguser") User user,Model model){ System.out.println("======="); System.out.println(model.asMap()); return "/resoult.jsp"; }结果就是,被 @ModelAttribut注解贴上的方法,会在本来映射的方法之前执行
看,先执行了被修饰的方法,后面再执行了映射方法