SSH_框架整合3-删除
一、普通删除
1 完善src中 类:
(1)EmployeeDao.java中:
//2 删除
public void delete(Integer id){
String hql="DELETE FROM Employee e WHERE e.id=?";
getSession().createQuery(hql).setInteger(0,id).executeUpdate();
}
(2)EmployeeService.java中:
//2删除
public void delete(Integer id){
employeeDao.delete(id);
}
(3)EmployeeAction.java中:
//2 删除
private Integer id;
public void setId(Integer id) {
this.id = id;
}
public String delete(){
employeeService.delete(id);
return SUCCESS;
}
2 完善struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default">
<action name="emp-*" class="employeeAction"
method="{1}">
<result name="list">/WEB-INF/views/emp-list.jsp</result>
<result name="success" type="redirect">/emp-list</result>
</action>
</package> </struts>
3 完善emp-list.jsp
<td>
<a href="emp-delete?id=${id }">Delete</a>
</td>
二、使用Ajax+jQuery方式实现删除
1 emp-list.jsp中写出Ajax语句:
<script type="text/javascript">
//删除, 使用 ajax 的方式
$(function(){
$(".delete").click(function(){
var lastName=$(this).next(":input").val();
var flag=confirm("是否要删除"+lastName+"的信息吗?");
//确认删除, 使用 ajax 的方式
if(flag){
//获取要删除的行
var $tr=$(this).parent().parent();
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>
同时要想获取删除时提醒“删除XXX的信息”,要在下面写上一个隐藏域,点击要删除的人时可以获取此人的lastName:<input type="hidden" value="${lastName}"/>
<s:iterator value="#request.employees">
<tr>
<td>${id}</td>
<td>${lastName}</td>
<td>${email }</td>
<td>${birth}</td>
<td>${createTime}</td>
<td>${department.departmentName}</td>
<td>
<a href="emp-delete?id=${id }" class="delete">Delete</a>
<input type="hidden" value="${lastName}"/>
</td>
</tr>
</s:iterator>
2 重写EmployeeAction中的delete()方法:
//2-1 使用Ajax方式删除
private InputStream inputStream; public InputStream getInputStream() {
return inputStream;
} public String delete(){
employeeService.delete(id);
try {
//删除成功
inputStream=new ByteArrayInputStream("1".getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
//删除失败
try {
inputStream=new ByteArrayInputStream("0".getBytes("UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
return "ajax-delete-success";
}
3 Strusts.xml中去除以前的emp-list显示,重写显示删除后结果:
<package name="default" namespace="/" extends="struts-default">
<action name="emp-*" class="employeeAction"
method="{1}">
<result name="list">/WEB-INF/views/emp-list.jsp</result>
<!-- <result name="success" type="redirect">/emp-list</result> -->
<result type="stream" name="ajax-delete-success">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
</package>
上传下此时的文件code:
1Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default">
<action name="emp-*" class="employeeAction"
method="{1}">
<result name="list">/WEB-INF/views/emp-list.jsp</result>
<!-- <result name="success" type="redirect">/emp-list</result> -->
<result type="stream" name="ajax-delete-success">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
</package> </struts>
2 emp-list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" SRC="scripts/jquery-1.7.2.js"></script>
<script type="text/javascript">
//删除, 使用 ajax 的方式
$(function(){
$(".delete").click(function(){
var lastName=$(this).next(":input").val();
var flag=confirm("是否要删除"+lastName+"的信息吗?");
//确认删除, 使用 ajax 的方式
if(flag){
//获取要删除的行
var $tr=$(this).parent().parent();
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>
</head>
<body>
<h3>Employee List Page</h3> <s:if test="#request.employees == null ||#request.size()==0">
没有员工信息
</s:if>
<s:else>
<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>
</tr>
<s:iterator value="#request.employees">
<tr>
<td>${id}</td>
<td>${lastName}</td>
<td>${email }</td>
<td>${birth}</td>
<td>${createTime}</td>
<td>${department.departmentName}</td>
<td>
<a href="emp-delete?id=${id }" class="delete">Delete</a>
<input type="hidden" value="${lastName}"/>
</td>
</tr>
</s:iterator>
</table>
</s:else>
</body>
</html>
3 EmployeeAction:
package com.atguigu.ssh.actions; import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Map; import org.apache.struts2.interceptor.RequestAware; import com.atguigu.ssh.service.EmployeeService;
import com.opensymphony.xwork2.ActionSupport; public class EmployeeAction extends ActionSupport implements RequestAware{
/**
*
*/
private static final long serialVersionUID = 1L; private EmployeeService employeeService; public void setEmployeeService(EmployeeService employeeService){
this.employeeService=employeeService;
} //2 删除
private Integer id;
public void setId(Integer id) {
this.id = id;
}
/*public String delete(){
employeeService.delete(id);
return SUCCESS;
}*/
//2-1 使用Ajax方式删除
private InputStream inputStream; public InputStream getInputStream() {
return inputStream;
} public String delete(){
employeeService.delete(id);
try {
//删除成功
inputStream=new ByteArrayInputStream("1".getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
//删除失败
try {
inputStream=new ByteArrayInputStream("0".getBytes("UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
}
return "ajax-delete-success";
}
//1 查询
public String list(){
request.put("employees", employeeService.getAll());
return "list";
} //放到页面里
private Map<String,Object> request;
@Override
public void setRequest(Map<String, Object> arg0) {
this.request=arg0;
} }
SSH_框架整合3-删除的更多相关文章
- SSH_框架整合4--添加员工信息
SSH_框架整合4--添加员工信息 一. 1 index.jsp:添加:<a href="emp-input">添加员工向信息:Add Employees' Infor ...
- SSH_框架整合6--修改Edit员工信息
SSH_框架整合6--修改Edit员工信息 1 加上修改Edit键 (1)emp-list.jsp <td> <a href="emp-input?id=${id }&qu ...
- SSH_框架整合5--验证用户名是否可用
SSH_框架整合5--验证用户名是否可用 1 emp-input.jsp中编写ajax验证用户名是否可用: <script type="text/javascript" SR ...
- SSH_框架整合2—查询显示
4. 完成功能. (1)com.atguigu.ssh.actions包下新建EmployeeAction.java package com.atguigu.ssh.actions; import j ...
- SSH_框架整合1
1 WEB环境下配置Spring 因为是在WEB环境中应用Spring,所以要先配置web.xml: (1)WebContent-WEB-INF-lib包中,加入Spring包下的required ...
- SSH_框架整合7--整个项目CODE
一 架构 1Action类 2 配置文件 3 View页面 二 Code 1 src (1)com.atguigu.ssh.actions >EmployeeAction.java packa ...
- SSH框架整合
SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...
- [Java] SSH框架笔记_框架整合示例(一)
本文描述的是框架SSH集成的示例,由于在这个过程中有一些小的细节容易被遗忘,特别撰写了一篇小的博文来记录这个过程,希望对自己以及后来者能够起到积极意义. 本文中使用的框架和版本号为: struts-2 ...
- s2sh三大框架整合过程(仅供参考)
三大框架顾名思义就是非常有名的Struts2 ,Hibernate,Spring, 框架整合的方法很多,现在我写一个非常简单的整合过程,相信大家一看就会! 这里使用的struts-2.2.1.1.hi ...
随机推荐
- 关于cocos2d-x 与 cocos2d-html5 资源预加载的思考
移动端资源预加载,可以做到需要加载的时候,从本地磁盘加载到内存,当纹理不需要的时候,都是强制清理内存里的纹理占用: cc.TextureCache.getInstance().removeAllTex ...
- java 的复用工具 - jar包
前言 Java提供了jar包的机制,使得已经开发好了的类能够顺利的被将来的工程所复用. 本章主要讲解如何使用这种工具. 包的作用 包能够将不同功用的类组织起来,从而确保类名的唯一性. 为了保证包名的唯 ...
- mysql样例数据库employees
Oracle和sqlserver都有基于员工信息的样例数据库,同样mysql上也是有的. 给出一个连接地址https://github.com/datacharmer/test_db. 下载后直接调用 ...
- [转载]NoSQL by Martin Flower
============================================================== URL1 nosql ========================== ...
- SAP采购订单屏幕增强
转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...
- banner轮播图js
例子1: if(!$('.side_ul ul').is(":animated")){ var wli = $('.side_ul li').width()+ ...
- Linux系统编程@多线程编程(一)
多线程编程 涉及操作系统原理概念 时间片 进程状态 上下文: 对进程来说,就是进程的执行环境,具体就是各个变量和数据,包括所有的寄存器变量.打开的文件.内存信息等. 进程的写时复制:由于一般 fork ...
- RandomAccessFile
RandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.但是该类仅限于操作文件
- Thinking Clearly about Performance
http://queue.acm.org/detail.cfm?id=1854041 The July/August issue of acmqueue is out now acmqueue is ...
- 异构平台同步(Mysql到Oracle)
Oracle GoldenGate学习之--异构平台同步(MySQL到Oracle) 如图所示:源端采用Mysql库,目标端采用Oracle库 一.OGG安装配置(源端) 1.OGG下载 https: ...