javaweb利用struts2完成批量删除记录

javaweb利用struts2框架完成批量删除

实现方式思路**(mvc设计模式)
后台查询实现后:(未附代码,自写)
1.在前端使用
ognl表达式对checkbox的name属性等于记录的唯一id标识**
2.为对每条信息记录进行选择取消,
3.利用js向后台传递参数,

4.利用后台action解析数据并提交删除。
好,完成了。

纯原创代码,
具体实现代码:(参考意义)
注意:xml自己配置
查询数据必须含有一个唯一标识,此处为id;

后台:
1.删除的Action类(controller层),

package controller.option;

import com.opensymphony.xwork2.ActionSupport;

import model.linku.JDBC_D;

public class UserXdelete extends ActionSupport {

	/**
	 * @author joker
	 * 
	 *         action 删除信息表tb_userinfo数据
	 */
	private static final long serialVersionUID = -8974990156314709622L;
	public String result = "";//删除信息

	public String getResult() {
		return result;
	}

	public void setResult(String result) {
		this.result = result;
	}

	@Override
	public void validate() {
		// TODO 自动生成的方法存根

	}

	public String delete() throws Exception {
		// TODO 自动生成的方法存根
		// 处理删除的ID
		JDBC_D delete;
		if (result.equals("") || result == null) {
			this.addFieldError("id", "没有参数!!!");
			return INPUT;
		} else
			delete = new JDBC_D("DELETE FROM tb_userinfo WHERE id IN(" + result + ")");

		if (delete.isFlag()) {
			this.addFieldError("id", "后台删除成功!!!");
			return SUCCESS;
		} else {
			this.addFieldError("id", "后台删除失败!!!");
			return INPUT;
		}
	}
}

1.删除的JDBC_D.java类(model层),使用了数据库连接池,可自行对此修改,未附上相关代码。

package model.linku;

import java.sql.Connection;
import java.sql.PreparedStatement;

import com.dbcp.Jdbc_DBCP_xiu;//数据库连接池
import com.opensymphony.xwork2.ActionSupport;
public class JDBC_D extends ActionSupport {

	/**
	 * @author joker
	 * 
	 *delete 
	 */
	private static final long serialVersionUID = 261093827269084323L;
	
	private boolean flag;

	public boolean isFlag() {
		return flag;
	}
	public JDBC_D(String sql) {
		this.flag = false;
		this.delete(sql);
	}

	private void delete(String sql) {
		try {
			Connection co = Jdbc_DBCP_xiu.getConnection();
			PreparedStatement p = co.prepareStatement(sql);
			p.executeUpdate();
			this.flag = true;
			Jdbc_DBCP_xiu.release(co, p,null);
		} catch (Exception e1) {
			// TODO 自动生成的 catch 块
			this.flag = false;
		}
	
	}

}

前端(view):
1.delete.jsp
变量说明:op是查询产生的对象的集合,<s:iterator>遍历显示,选择删除id即可
querydel.action自行配置

	<s:form class="input" action="querydel.action" method="post">
		<s:textfield class="input1" name="id" label="ID查找"></s:textfield>
		<s:submit value="查询要删除的数据"></s:submit>
	</s:form>
	<s:if test="op">
		<div class="table">查询结果表</div>
		<div class="table" style="border: 3px solid white;">
			<table class="table" >
				<thead>
					<tr class="tabletr">
						<th class="th">ID</th>
						<th class="th">姓名</th>
						<th class="th">性别</th>
						<th class="th">出生地</th>
						<th class="th">选择</th>
					</tr>
				</thead>
				<tbody>
					<s:form theme="simple">
						<s:iterator value="op" var="x">
							<tr class="tabletr">
								<td class="td">
									<s:property value="%{#x.id}" />
								</td>

								<td class="td">
									<s:property value="%{#x.name}" />
								</td>
								<td class="td">
									<s:property value="%{#x.sex}" />
								</td>
								<td class="td">
									<s:property value="%{#x.local}" />
								</td>
								<td class="td">
									<s:checkbox onclick="fun(this)" value="check" name="%{#x.id}" theme="simple"></s:checkbox>
								</td>
							</tr>
						</s:iterator>
					</s:form>
				</tbody>
			</table>
			<center>
			<button onclick="submitdel()" class="delete">提交<b>在本页选择</b>的删除选项</button>
		</center>

2.删除信息提交的js代码:

<script type="text/javascript">
		
		var deleter= new Array();
		var i=0;
		function fun(c){
			if(c.checked==true){
				deleter[i]=c.name;
				i++;
			}
			else{
				for(var j=0;j<deleter.length;j++){
					if((c.name)==deleter[j]){
						//数组的交换节约空间
						deleter[j]=deleter[deleter.length-1];
						deleter[deleter.length-1]="";
						i--;
						break;
					}
				}
			}
		
		}
		function submitdel(){
			if(confirm("你确定删除这些结果吗?将不可恢复!")){
			//submit
			location.href="delete.action?result="+deleter;
			}else
				alert("你取消了删除。");
		}
		</script>

具体使用,具体修改

本代码只有参考意义和提供实现思路。

同可以实现对记录的分页查询
可参考我的另一篇博文。
javaweb利用struts2完成批量删除记录
完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值