日期:2014-05-20  浏览次数:20941 次

java批量删除checkbox中选中的对象
这是我jsp页面的代码
  
  <script type="text/javascript"> 
  function deleteAll() {
  var flag = false;
  var deId = document.getElementsByName("usId");
  for (var i = 0; i < deId.length; i++) {
  if (deId[i].checked) {
  flag = true;
  }  
  }
  if (!flag) {
  alert("请选择需要删除的用户!");
  return ;
  }
  if (window.confirm("确认删除吗?")) {
   
  return true;
   
  }return false;
  }
</script>

方法
  public boolean deleteAllUsers(Integer id){
String hql = "from User user where id = "+id;
List<User> list = (List<User>)this.getHibernateTemplate().find(hql);
if(list!=null){
this.getHibernateTemplate().deleteAll(list);
return true;
}else {
return false;
}
}

怎样才能从jsp页面传值到DAO呢?但我觉得自己写的这个方法好像也有点错误?


------解决方案--------------------
你写的Js如果只有一条记录的时候肯定会有问题的,因为此时的多选框已经不是数组了,贴一下我写的,我的实现是将所要删除的id用冒号分隔,然后传给后台
JScript code

    function deleteCompany() {
    var ids = document.fom.ids;
    var result = "";
    if (typeof (ids) != "undefined") {
        if (typeof (ids.length) != "undefined") {
            for ( var i = 0; i < ids.length; i++) {
                if (ids[i].checked) {
                    result += ids[i].value + ";"
                }
            }
            result = result.substring(0, result.length - 1);
        } else {
            if(ids.checked)
                result = ids.value;
        }
    }
    if (result == "") {
        alert("请选择要删除的记录");
    } else {
        window.location.href = "company_delete.action?ids="+result+"&&groupType=${groupType}";
    }

}