在emp-list.jsp中添加delete
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<td>ID</td>
<td>LASTNAME</td>
<td>EMAIL</td>
<td>BIRTH</td>
<td>CREATETIME</td>
<td>DEPT</td>
<td>DELETE</td>
<td>EDIT</td>
</tr>
<s:iterator value="#request.employees">
<tr>
<td>${id }</td>
<td>${lastName }</td>
<td>${email }</td>
<td>
<s:date name="birth" format="yyyy-MM-dd"/>
</td>
<td>
<s:date name="birth" format="yyyy-MM-dd hh:mm:ss"/>
</td>
<td>${department.departmentName }</td>
<td>
<a href="emp-delete?id=${id }" class="delete">Delete</a>
<!-- 设置隐藏域用来获取名字 -->
<input type="hidden" value="${lastName }"/>
</td>
<td>
<a href="emp-input?id=${id }">Edit</a>
</td>
</tr>
</s:iterator>
</table>
在webcontent文件夹下新建文件夹scripts
在文件夹下加入jquery-1.9.1.min.js
在emp-list.jsp下添加以下代码将jQuery导入
<script type="text/javascript" src="scripts/jquery-1.9.1.min.js"></script>
定义脚本实现点击 delete 时, 弹出 确定是要删除 xx 的信息吗 ? 若确定, 执行删除, 若不确定, 则取消
增加lastname的隐藏域用来获取姓名
<td>
<a href="emp-delete?id=${id }" class="delete">Delete</a>
<!-- 设置隐藏域用来获取名字 -->
<input type="hidden" value="${lastName }"/>
</td>
<script type="text/javascript">
$(function(){
//1. 点击 delete 时, 弹出 确定是要删除 xx 的信息吗 ? 若确定, 执行删除, 若不确定, 则取消
$(".delete").click(function(){
<!-- 调用隐藏域获取的名字 -->
var lastName = $(this).next(":hidden").val();
var flag = confirm("确定要删除" + lastName + "的信息吗?");
if(flag){
//将一行信息定义为$tr,是超链接a节点的父节点td的父节点tr
var $tr = $(this).parent().parent();
//删除, 使用 ajax 的方式
var url = this.href;
var args = {"time":new Date()};
$.post(url, args, function(data){
//若 data 的返回值为 1, 则提示 删除成功, 且把当前行删除
if(data == "1"){
alert("删除成功!");
$tr.remove();
}else{
//若 data 的返回值不是 1, 提示删除失败.
alert("删除失败!");
}
});
}
//取消超链接的默认行为
return false;
});
})
</script>
在EmployeeAction.java中添加delete方法获取id
public String delete() {
try {
employeeService.delete(id);
//接收返回值为1的值,如果异常,执行catch
inputStream = new ByteArrayInputStream("1".getBytes("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
try {
//接收返回值为0的值
inputStream = new ByteArrayInputStream("0".getBytes("UTF-8"));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
return "ajax-success";
}
在Struts.xml中添加结果
<result type="stream" name="ajax-success">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
以下是用原生方法进行删除
在dao层EmployeeDao.java中添加删除方法
public void delete(Integer id){
String hql = "DELETE FROM Employee e WHERE e.id = ?";
getSession().createQuery(hql).setInteger(0, id).executeUpdate();
}
在service层EmployeeService.java中添加
public void delete(Integer id){
employeeDao.delete(id);
}
在Struts中添加结果
<result name="success" type="redirect">/emp-list</result>