**
先把需要的mysql表达出来得到所有的角色
先在java里面得到所有的角色
public class ShowAllRole extends HttpServlet{
private RoleDao roleDao=new Roleimpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws
ServletException,IOException{
//获取数据库中的数据(所有角色)
List<Roleinfo> roles = roleDao.findAllRole();
// 将rolelist保存到request作用域
req.setAttribute("roleList", roles);
// 响应用户的请求,要从当前的serlvet中挑战到showRole.jsp页面
req.getRequestDispatcher("showall.jsp").forward(req, resp);
}
再进入到jsp页面来得到值
<body>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<table class="table table-bordered table-hover">
<tr>
<td colspan="5">
<button class="btn btn-primary" id="btn_saveStudent">添加</button>
<button class="btn btn-primary" id="btn_deleteStudent">删除</button>
</td>
</tr>
<tr>
<th width="30px">
<input type="checkbox"/>
</th>
<th>编号</th>
<th>角色名称</th>
<th>操作</th>
</tr>
<%
// 获取Request作用域中的数据 衔接上一层的值然后遍历循环
Object role = request.getAttribute("roleList");
if (role == null) {
%>
<tr>
<td colspan="4">
没有数据。。。
</td>
</tr>
//记得把tr td包住这样就会进去java代码里面的for循环就会一个一个生成
<%
} else {
//把得到的object的值转化为list集合然后遍历出来
List<Roleinfo> roleList = (List<Roleinfo>) role;
for (Roleinfo roleinfo : roleList) {
%>
<tr>
<th width="30px">
//这里是关键把需要的值变成value值到时候可以直接得到
<input type="checkbox" value="<%=roleinfo.getRoleId() %>" class="stuClass"/>
//这是另外一个方法跟着关系不大
<input hidden type="text" name="id" value="<%=roleinfo.getRoleId() %>">
</th>
<td>
<%=roleinfo.getRoleId() %>
</td>
<td>
<%=roleinfo.getRoleName() %>
</td>
<td>
<%-- 在修改数据时,需要向进入servlet中查询当前这条数据的信息,并将数据发送到修改的页面,在修改的页面显示出来 --%>
<a class="btn btn-primary" href="forreigst?id=<%=roleinfo.getRoleId() %>">修改</a>
<a class="btn btn-primary" name="delete" href="del?id=<%=roleinfo.getRoleId() %>">删除</a>
<%
Object message = request.getAttribute("message");
out.print(message==null?"":message);
%>
</td>
</tr>
<%
}
}
%>
</table>
</div>
</div>
</div>
</body>
现在就是要在jquery里面得到该值然后传输出去
$(function () {
$("#btn_deleteStudent").click(function () {
var dd=$("[type=checkbox]:checked");
var values="";
dd.each(function () {
//function括号里面第一个属性是index下标,第二个属性是value
var value =this.value
values+=value+","; //变成字符串
})
// console.log(values); 测试有没有得到values
location.href="delall?all="+values;
//进入超链接把字符串传输到该java文件里面去,
//然后java文件得到字符串就截取字符串来得到数组然后遍历循环
})
得到字符串遍历循环 ,java文件
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//取得该字符串
String a=req.getParameter("all");
//判断条件
if (a!=""){
//截取字符串得到数组遍历循环单个删除调用JDBC方法
String[] split = a.split(",");
for (String aa:split){
Integer id = Integer.valueOf(aa);
roleDao.delAll(id);
}
req.getRequestDispatcher("main.jsp").forward(req, resp);
}else{
req.getRequestDispatcher("showall.jsp").forward(req, resp);
}
还有另一种方法可以得到该值 jsp代码
<input type="checkbox" name="delete" value="<%=roleinfo.getRoleId() %>" class="stuClass"/>
//在刚刚下面去新增一个值隐藏到时候点击事件触发就得到下面的对象的属性到时候取出来
//<input hidden type="text" name="id" value="<%=roleinfo.getRoleId() %>">
//不需要隐藏这个多余了
//因为提交表单之后就会默认在网址上传输复选框确定的值
//记住加上value值就是id值然后记得添加name和type不然type默认是sumit
<button class="btn btn-primary" type="button" id="btn_deleteStudent">删除</button>

jquery代码
// $(".stuClass").click(function () {
// $(this).next().attr("checked",true);
// });//得到下一行
//得到隐藏的然后value这样做多余
$(function () {
$("#btn_deleteStudent").click(function () {
$("#tj").submit();
})
})
// 这样就得到了value值然后再去javaSelvet里面去得到name为delete的值
javaServlet代码
@WebServlet("/Ssdel")
public class SsDel extends HttpServlet {
private RoleDao roleDao = new Roleimpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
//得到所有的数
String[] a=req.getParameterValues("delete");
//得到值,值为数组如果没有就会是null因为不是创建数组而是得到空那就是null创建数组
//就用length判断是否为空
if (a!=null){
for (String b:a){
Integer id = Integer.valueOf(b);
roleDao.delAll(id);
}
req.getRequestDispatcher("main.jsp").forward(req, resp);
}else {
req.getRequestDispatcher("showall.jsp").forward(req,resp );
}
}
}
本文介绍了如何在Java Servlet中获取MySQL数据并传递给JSP页面,接着讲解了通过jQuery获取和传输这些值的方法,包括在Java文件中的字符串遍历循环以及JSP和Servlet之间的交互代码示例。
4099

被折叠的 条评论
为什么被折叠?



