实现页面的修改功能
实现功能的过程中遇到的新知识点:
1.隐藏的编辑用户信息表格
修改按钮
<a href="#" class="btn btn-primary btn-xs"
data-toggle="modal" data-target="#customerEditDialog"
onclick="editCustomer(${row.cust_id})">修改</a>
data-toggle=”modal” data-target=”#customerEditDialog”这两个属性导致用户点击修改按钮后出现修改用户信息的对话框
修改用户信息对话框
<!-- 客户编辑对话框 -->
<div class="modal fade" id="customerEditDialog" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">修改客户信息</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="edit_customer_form">
<input type="hidden" id="edit_cust_id" name="cust_id"/>
<div class="form-group">
<label for="edit_customerName" class="col-sm-2 control-label">客户名称</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="edit_customerName" placeholder="客户名称" name="cust_name">
</div>
</div>
<div class="form-group">
<label for="edit_customerFrom" style="float:left;padding:7px 15px 0 27px;">客户来源</label>
<div class="col-sm-10">
<select class="form-control" id="edit_customerFrom" placeholder="客户来源" name="cust_source">
<option value="">--请选择--</option>
<c:forEach items="${fromType}" var="item">
<option value="${item.dict_id}"<c:if test="${item.dict_id == custSource}"> selected</c:if>>${item.dict_item_name }</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label for="edit_linkMan" class="col-sm-2 control-label">联系人</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="edit_linkMan" placeholder="联系人" name="cust_linkman">
</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="updateCustomer()">保存修改</button>
</div>
</div>
</div>
</div>
这样就实现了点击按钮后出现编辑对话框。
2、保存用户信息时使用ajax异步访问controller。
function updateCustomer() {
$.post(
"<%=basePath%>customer/update.action",
//将form表单提交的信息序列化为customer对象传给controller
$("#edit_customer_form").serialize(),
function(data){
alert("客户信息更新成功!");
window.location.reload();
});
}
$(“#edit_customer_form”).serialize() 这个方法可以将表单中key:value格式的客户信息封装到对象中返回给controller。
3、controller必须要返回‘ok’,前端才能实现在用户信息修改成功后提示修改成功并关闭编辑对话框。这里的‘ok’就是回调函数中的data。
//保存修改后的信息
@RequestMapping("/customer/update.action")
public @ResponseBody
String updateEdit(Customer customer) {
customerService.updateCustomer(customer);
return "OK";
}