巧妙的删除数据后转到当前

我们在做很多项目的时候,总会要删除很多的数据,以前在删除数据的时候只会删除一个,而且在删除成功后跳转到的页面也是从第一页开始,所以感觉到一点都不舒服,总想试一次性的删除很多个数据,就是选中的数据,然后再跳转到删除的那个页面,这样的话效果要好得多,今天在学习和做通讯录的时候终于掌握了该方法,获得很大的收获。其中思路如下:
1.首先在显示信息页面添加一个操作烈,该列是一个复选框,可以支持多选,反选,清空的功能,该功能是用JavaScript进行控制,主要方法如下:
全选功能:
function all1(){
var arr = document.getElementsByName("ids");
var size = arr.length;
for(var i = 0 ; i < size ; i++ ){
arr[i].checked=true;

}
}
反选功能:
function reselected(){
var arr = document.getElementsByName("ids");
var size = arr.length;
for(var i = 0 ; i < size ; i++ ){
arr[i].checked= !arr[i].checked;
}

}
清空功能:
function clear1(){
var arr = document.getElementsByName("ids");
var size = arr.length;
for(var i = 0 ; i < size ; i++ ){
arr[i].checked=false;

}

}
然后获取它的id:
function $(id){
return document.getElementById(id);
}
function delForm(){
var f = $("delForm");
f.submit();
}
提交到servlet页面上进行处理和控制:
servlet的页面控制代码可以获取要删除的数据,把它存到一个数组里面,然后调用java方法进行统一的删除。其中java方法的代码如下:
public void removeLinkManById(String[] ids) {
if(ids == null)return;
StringBuffer sb = new StringBuffer();
for(String id : ids){
sb.append(id+",");
}
String sb1 = sb.substring(0, sb.length()-1);
String sql = "delete from t_linkman where id in ("+sb1+")";
SQLHelper.update(sql,null);
}

在servlet页面中进行调用和页面跳转,实现跳到当前页面:
//获取要是删除的数据
String [] ids = request.getParameterValues("ids");
//调用删除方法
LinkManService.getInstance().removeLinkManById(ids);
//获取http头,就是获取当前的路径
String path = request.getHeader("Referer");
//该方法是如果当前页全部删除了就不能再跳,要跳到前一页,该方法一会将介绍
String path1 = PageNoConvert.convert(path);
//request.getRequestDispatcher("main1.jsp").forward(request, response);
//重定向转到当前页面,在此不能使用转发,转发将会出错
response.sendRedirect(path1);

PageNoConvert类:(主要功能是为了防止用户全部删除页面后,返回到的页是空的,所以要做相应的处理,转向前一页,达到一定的效果),该类的代码如下:
public final class PageNoConvert {


/**该类完全都是运用字符串的处理方式
* pageNo=3 如果3没在内容跳到pageNo = 2;
* @param url
* @return
*/
public static String convert(String url){
if(url == null)return null;

//必须 4 位置
int index = url.indexOf("pageNo")+7;
//pageNo = 4
String pageNo = url.substring(index);

if(pageNo == null)return null;
int page = Integer.parseInt(pageNo);

boolean exists = LinkManService.getInstance().isExistsByPageNo(page);

//这一页己经不存在内容
if(exists == false){
page = page - 1;
}
if(page < 1){
page = 1;
}

String nurl = url.replaceAll(pageNo,Integer.toString(page));

return nurl;

}
这样的方法并不是很好,但是对于初学者来说是一种进步,在未来的工作当中,将会很有用处!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值