最近要实现一个功能,效果图如下,当点击最上方复选框可以实现总控制全选和取消操作,然后点击批量删除按钮可以实现删除所选中的数据行
环境说明
采用ssm集合框架,配置部分不罗列
Dao层
question.xml
<delete id="deleteMany" parameterType="int">
delete from test_detail where id in
<foreach item="qid" collection="array" open="(" separator="," close=")">
#{qid}
</foreach>
</delete>
注解说明:
deleteMany:是对应mapper里面的方法
int:因为传入的参数是int[]
id:是我数据表里面的字段名,我是根据id删除的
qid:这是我设置的参数名,要注意item=”qid”和#{qid}要一致
这是动态sql的用法
QuestionMapper.java
public interface QuestionMapper {
//批量删除
public Integer deleteMany(int[] id_arr);
}
service层
QuestionService.java
public interface QuestionService {
//批量删除
public Integer deleteMany(int[] id_arr);
}
QuestionImpl.java
//注意这里我们加入了@Service注解,主要用来表示这就是一个Service层
@Service
//注意这里有delete方法,所以这里也必须有一个@Transaction注解用来表示事务的操作
@Transactional
public class QuestionImpl implements QuestionService {
@Autowired
QuestionMapper qm;
@Override
public Integer deleteMany(int[] id_arr) {
// TODO 自动生成的方法存根
return qm.deleteMany(id_arr);
}
}
controller层
QuestionController.java
@Controller
@RequestMapping(value="/tec")
public class QuestionController {
@Autowired
QuestionService qs;
@RequestMapping(value="/isdeleteMany.do")
public String deleteMany(int[] chk_value) {
System.out.println(chk_value);
if (chk_value == null ) {
return "redirect:/tec/init.do";
}
//直接传数组
qs.deleteMany(chk_value);
//重定向
return "redirect:/tec/init.do";
}
}
前端jsp代码
tec_index.jsp
<table>
<tr>
<td><input type="checkBox" id="selectall" name="case" onclick="cli("case")/></td>
</tr>
<tr>
<td><input type="checkBox" id="case" name="case"/></td>
<td>ID:<input type="text"/>1</