SpringMVC数据回写
- SpringMVC特性:形参中获取的数据,SpringMVC自动将数据自动传递到返回的页面中。
@ModelAttribute
设置响应数据的名字- 全局回写数据
形参对象自动写入返回页面
以下的方法并没有将 user
这个对象写入内置对象中,不过SpringMVC自动添加进行了,可以从页面中获取到。
/**
* 当我们通过自定义对象接收数据的时候,处理器适配器会自动将该对象保存在model中,且key默认为对象名
* model.addAttribute("user",user);
* @param user
* @return
*/
@RequestMapping("/update2")
public String update2(User user){
user.setName("王五");
System.out.println("----");
return "/user.jsp";
}
页面使用该对象信息
<h1>用户管理:</h1>
<form action="">
id:<input type="text" value="${user.id }"><br>
姓名:<input type="text" value="${user.name }"><br>
地址:<input type="text" value="${user.address }"><br>
<input type="submit" value="提交">
</form>
测试
设置返回对象名
如果我们想自定义响应数据的名字,可以通过上面注解进行设置。
这样页面中就通过 aaa.xxx
的方式获取到信息。就不测试了
/**
* 当我们通过自定义对象接收数据的时候,处理器适配器会自动将该对象保存在model中,且key默认为对象名
* model.addAttribute("user",user);
* @param user
* @return
*/
@RequestMapping("/update3")
public String update3(@ModelAttribute("aaa") User user){
user.setName("王五");
System.out.println("----");
return "/user.jsp";
}
数据自动写入所有返回页面
该类的任意方法被调用,本数据都会写入它返回的页面中
@ModelAttribute("list")
public List<String> getListData(){
System.out.println("----list----");
return Arrays.asList("苹果","香蕉","橘子");
}
页面代码
<h1>用户管理:</h1>${list }
<form action="">
id:<input type="text" value="${aaa.id }"><br>
姓名:<input type="text" value="${aaa.name }"><br>
地址:<input type="text" value="${aaa.address }"><br>
<input type="submit" value="提交">
</form>
访问 update3
总结: 数据回写的本质是默认给形参加上 ModelAttribute
注解,该注解会使该对象添加到页面中。
项目打包 提取码: e323
环境:eclipse