jsp页面中使用ssh框架如何实现复选框全部删除的功能?

例如点击“彻底删除”将所有复选框选中的数据删除,使用SSH框架Jsp页面如何实现。
如果点击“彻底删除”是一条记录一条记录删除,还是单独写个方法一块删?如果一块删删除语句如何写?

首先不建议物理删除,最好还是做逻辑删除\x0d\x0a至于取值,例如\x0d\x0aJSP中定义了3个checkbox\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a在action中取值\x0d\x0aString[] strs = request.getParameterValues(“mybox”);\x0d\x0a\x0d\x0a如果要想一起删的话\x0d\x0a首先你复选框的值应该是具体对应数据库实体的ID,或者某一个唯一字段\x0d\x0a删除语句为 DELETE FROM 表名 WHERE 字段 in (之前取到的复选框的值);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-26
全选的复选框的id是check_2 下面遍历的复选框的name是checks:
以下是选中所有遍历后的复选框
function checkAll_1(){
var allCheck = document.getElementsByName("checks");
var check_2 = document.getElementById("check_2");
check_2.checked=false;
for(var i=0;i<allCheck.length;i++){
if(document.getElementById("check_1").checked == true){
allCheck[i].checked = true;

}else if(document.getElementById("check_1").checked == false){
allCheck[i].checked = false;
}
}

}
这里是在全部删除这个超链接中写的事件。如<a href="javascript:getIds()">全部删除</a>
function getIds(){
var ids = document.getElementsByName("checks");
var id="";

for(var i=0;i<ids.length;i++){

id += ids[i].value+",";

}

window.location.href="<%=basePath%>message/delete_messageAll.action?ids="+id;
写一个循环删除嘛。再给你补充点Action和Dao里面的代码
这是Action里是:
/**
* 批量删除消息
*/
public String deleteAllMessage(){
String [] idss = ids.split(",");
for(int i=0;i<idss.length;i++){
messageBizImpl.doDeleteMessage(new Integer(idss[i]));
}
return "success";
}
这是Dao里的
public int doDeleteMessage(int id) {
int result = 0;
Session session = null;
try {
session = this.getSession();
session.delete(session.get(Message.class, id));
this.commit(session);
result = 1;
} catch (Exception e) {
this.rollback(session);
result = 0;
e.printStackTrace();
}finally{
this.close(session);
}
return result;
}
小项目这样写就行,不用考虑什么加载速度问题,就是用jdbc写也可以的。建议别用Hibernate了。还是用Ibatis吧。Hibernate有时候报的错让人恶心无语。
第2个回答  推荐于2016-07-20
给每个checkbox一个相同的ID(ID="checkbox")
value=数据的ID(value=${xxx.id})
这么做事因为checkbox只有选中了才会传值
后台拿到checkboxList,对list进行遍历,如果有那个id就代表被选中了
通过id查找对象,删除本回答被提问者采纳
第3个回答  推荐于2018-06-24
首先不建议物理删除,最好还是做逻辑删除
至于取值,例如
JSP中定义了3个checkbox
<input type="checkbox" name="mybox" value="1" />
<input type="checkbox" name="mybox" value="2" />
<input type="checkbox" name="mybox" value="3" />
在action中取值
String[] strs = request.getParameterValues(“mybox”);

如果要想一起删的话
首先你复选框的值应该是具体对应数据库实体的ID,或者某一个唯一字段
删除语句为 DELETE FROM 表名 WHERE 字段 in (之前取到的复选框的值);本回答被网友采纳
第4个回答  2012-05-03
页面中每个数据的name写成同样的,比如userid,然后Action中定义成private userid[];使用userid.length可以获得数组长度,userid[i]就是第i个

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网