JavaWeb日记——struts2利用不同方式执行删除功能
来源:互联网 发布:rhino mac 破解 编辑:程序博客网 时间:2024/06/11 13:23
使用这个之前,你要先懂得
- struts2的配置
- 基础的el语法
- action的分配
- 返回值的回调
- 一定的ajax和jquery基础
首先你要配置好web.xml,applicationContext-beans.xml,applicationContext.xml,这里不展开说
第一种方法比较简单直接在按钮搞个链接,链接上有id参数
首先配置struts.xml里的action
<!-- method通配符,执行方法自动对应*的内容 --> <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>
页面的关键部分
<a href="emp-delete?id=${id }">Delete</a>
Action部分
public class EmployeeAction extends ActionSupport implements RequestAware{ private static final long serialVersionUID = 1L; //员工增删查改的封装,具体代码可以忽略 private EmployeeService employeeService; public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } public String list() { request.put("employees", employeeService.getAll()); return "list"; } private Integer id; //自动获取传入id public void setId(Integer id) { this.id = id; } public String delete() { employeeService.delete(id); return "success"; } private Map<String, Object> request; @Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; }}
点击那个链接之后就会直接删除掉那个数据并重定向到所有员工的列表
第二种方法比较高级,用到ajax
因为通常我们删除都需要确定,并不是一点击就删除然后跳转
重新配置struts.xml里的action
<!-- method通配符,执行方法自动对应*的内容 --> <action name="emp-*" class="employeeAction" method="{1}"> <!-- 显示所有员工 --> <result name="list">/WEB-INF/views/emp-list.jsp</result> <!-- 返回ajax-success时以流的方式接收 --> <result type="stream" name="ajax-success"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action>
页面主要代码
<tr> <!-- 省略其他行 --> <td> <a href="emp-delete?id=${id }" class="delete">Delete</a> <input type="hidden" value="${lastName }"/> </td> </tr>
要调用的js
<script type="text/javascript"> $(function(){ //1. 点击 delete 时, 弹出 确定是要删除 xx 的信息吗 ? 若确定, 执行删除, 若不确定, 则取消 $(".delete").click(function(){ var lastName = $(this).next(":hidden").val(); var flag = confirm("确定要删除" + lastName + "的信息吗?"); if(flag){ 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>
Action代码
public class EmployeeAction extends ActionSupport implements RequestAware{ private EmployeeService employeeService; public void setEmployeeService(EmployeeService employeeService) { this.employeeService = employeeService; } public String list() { request.put("employees", employeeService.getAll()); return "list"; } private Integer id; //设置传入id public void setId(Integer id) { this.id = id; } //利用输入流传回,通常返回一些标记值(0或1之类的) private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String delete() { //成功返回1,失败返回0 try { employeeService.delete(id); inputStream = new ByteArrayInputStream("1".getBytes("UTF-8")); } catch (Exception e) { e.printStackTrace(); try { inputStream = new ByteArrayInputStream("0".getBytes("UTF-8")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } } return "ajax-success"; } private Map<String, Object> request; @Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; }}
利用ajax的话更符合现实开发的需要,用户要先确定再执行操作,而且不用重定向,移除在当页面的进行,更加节省流量用户体验也更加好
0 0
- JavaWeb日记——struts2利用不同方式执行删除功能
- JavaWeb日记——利用标签进行回显
- JavaWeb日记——Springboot 热部署的两种方式
- Struts2学习——0500不同方式接收参数
- 利用toad批量执行功能快速删除包含…
- JavaWeb日记——浅析SSH框架
- JavaWeb日记——常用Redis配置
- JavaWeb日记——JedisPoolConfig详解
- JavaWeb日记——Shiro初体验
- 利用javaweb实现登陆功能!
- JavaWeb--Struts2——OGNL表达式
- javaweb中利用timer定时执行程序
- struts2.1.8+sitemesh-2.4.2+urlrewrite-2.6.0web.xml不同的配置方式导致不同的功能
- tab功能菜单——利用tab切换不同的div
- JavaWeb日记——MyBatis一次插入多条数据
- JavaWeb日记——当springmvc遇上swagger2
- JavaWeb日记——Session和Cookie实现登录认证
- JavaWeb日记——Shiro之角色和权限
- 【接口测试】接口测试之HTTP协议一
- 初始化与清理之一 (初始化)
- 飞哥教你微信公众号开发-5-素材管理
- Android 6.0指纹识别App开发demo
- Swift3.0学习笔记-The Basics(对比Java)
- JavaWeb日记——struts2利用不同方式执行删除功能
- Word转HTML
- 飞哥教你微信公众号开发-6-用户管理
- for循环控制
- PAT-BL-1007
- DOM基础
- Java线程(CountDownLatch、CyclicBarrier、Semaphore)并发控制工具类
- 设计模式之中介者模式
- Linux 系统中僵尸进程