需求:做一个表格,每项数据从后端获取值,点击修改框时默认出现所选项的数据。
分析:1.首先后端从前端传值,可用modelAndView的addObject方法,然后用el表达式和jstl标签填充表格。如此:
后端:
ModelAndView mv = new ModelAndView();
List<User> userlist = adminService.showUser();
mv.addObject("userlist",userlist);
前端:
<c:forEach items="${userlist.list}" var="user">
<tr>
<td>${user.userID}</td>
<td>${user.nickname }</td>
<td>${user.usersex }</td>
<td>${user.userphone}</td>
<td>${user.usernumber}</td>
<td>${user.useraddress}</td>
<td><span onclick="edit(${user.userID})" data-toggle="modal" data-target="#vip_edit">修改</span></td>
<td><span onclick="deleteuser(${user.userID})" data-toggle="modal" data-target="#vip_delete">删除</span></td>
</tr>
</c:forEach>
呈现效果:
2.需要在点击修改时弹出框中呈现该列数据,可用ajax方法从后端传改行id,然后得到返回的数据类型,再对输入框进行填充。
前端传id:
<td><span onclick="edit(${user.userID})" data-toggle="modal" data-target="#vip_edit">修改</span></td>
后端得到id,从数据找到id对应的用户,返回给前端:
/*
* 用户修改时显示信息
*/
@RequestMapping(value="/showEditUser",method=RequestMethod.POST)
@ResponseBody
public User showEditUser(@RequestParam("userID") String userID) {
System.out.println(userID);
this.setEdit_user_id(Integer.parseInt(userID));
User user = null;
try {
user = adminService.showEditUser(Integer.parseInt(userID));
}catch(Exception e) {
e.printStackTrace();
}
return user;
}
前端ajax:
<script type="text/javascript">
function edit(userID){
$.ajax({
type: "post",
url: "showEditUser",
data: {
"userID": userID
},
success:function(data){
$("#vip_name").val(data.nickname);
$("#sex").val(data.usersex);
$("#phone_num").val(data.userphone);
$("#pin").val(data.usernumber);
$("#address").val(data.useraddress);
},
error:function(data){
alert('error');
}
});
}
</script>
vip_name、sex等会输入框id,nickname等是user类属性。
呈现效果:
剩下表单提交post即可。