SpringMVC的参数绑定-修改页面-数据回显
(1)什么是数据回显?
为了修改数据方便
可以将被修改的数据,放到ModelAndView中,传给页面,页面使用el表达式,逐个设置给表单。
- 根据当前选择行的id来修改数据
<c:forEach items="${list}" var="item" >
<tr>
<td>${item.id}</td>
<td>${item.username}</td>
<td>${item.password}</td>
<td>${item.city}</td>
<td>${item.birthday.year}/${item.birthday.month}/${item.birthday.day}</td>
<%--调用日期格式化标签--%>
<td><fmt:formatDate value="${item.birthday2}" pattern="yyyy年MM月dd日"/></td>
<td><a href="${pageContext.request.contextPath}/update.action?id=${item.id}">修改</a> </td>
</tr>
</c:forEach>
- 将id传到PersonController的方法
@RequestMapping("update.action")
public ModelAndView updatePerson(int id){
//1:模拟一下查询数据库
Person person= Db.findById(id);
//2:转发到页面
ModelAndView mv = new ModelAndView();//对数据与页面的封装
mv.addObject("person",person);
//WEB-INF/jsp/ 前缀
//.jsp 后缀
mv.setViewName("updatePersonUI");// /WEB-INFO/jsp/updatePersonUI.jsp
//3:在页面上进行forEach循环
return mv;
}
- 根据id查询到数据后,传到updatePersonUI.jsp进行显示
<form method="post" action="${pageContext.request.contextPath}/update2.action">
用户名: <input type="text" name="username" value="${person.username}"/><br/>
用户密码: <input type="text" name="password" value="${person.password}"/><br/>
城市: <input type="text" name="city" value="${person.city}"/><br/>
年 <input type="text" name="birthday.year" value="${person.birthday.year}"/><br/>
月<input type="text" name="birthday.month" value="${person.birthday.month}"/><br/>
日<input type="text" name="birthday.day" value="${person.birthday.day}"/><br/>
出生日期<input type="text" name="birthday2" value="${person.birthday2}" /><br/>
<input type="submit" value="更新"/><br/>
</form>
- 然后就可以在原数据的基础上修改,并提交到update2.action进行更新操作。