`
tiansoft
  • 浏览: 175608 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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

阅读更多
我们在做很多项目的时候,总会要删除很多的数据,以前在删除数据的时候只会删除一个,而且在删除成功后跳转到的页面也是从第一页开始,所以感觉到一点都不舒服,总想试一次性的删除很多个数据,就是选中的数据,然后再跳转到删除的那个页面,这样的话效果要好得多,今天在学习和做通讯录的时候终于掌握了该方法,获得很大的收获。其中思路如下:
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;

}
这样的方法并不是很好,但是对于初学者来说是一种进步,在未来的工作当中,将会很有用处!
分享到:
评论
Global site tag (gtag.js) - Google Analytics