我要做的效果如图。选中复选框,点击删除,就可以删除。
但是<a标签>后面的?怎么写,真心不会,请指教。纠结两天了。谢谢!这是jsp,a标签就在29行
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head> <body>
<table align="center" width="80%" cellspacing="0" cellpadding="5">
<tr align="center">
<td><a href="deleteServlet?">删除</a></td>
<td>车次</td>
<td>发车-到达</td>
<td>发时-到时</td>
<td>车型</td>
<td>运行时间</td>
<td>里程</td>
</tr>
<c:if test="${!empty list}">
<c:forEach items="${list}" var="train">
<tr align="center">
<td><input type="checkbox" name="fuxuan1" value=${train.trainNo}></td>
<td>${train.trainNo}</td>
<td>${train.stratStation}-${train.arrivalStation}</td>
<td>${train.startTime}-${train.arrivalTime}</td>
<td>${train.type}</td>
<td>${train.runtime}</td>
<td>${train.mile}公里</td>
</tr>
</c:forEach>
</c:if>
</table>
</body>
</html>这是我的servlet ,可惜传不过来了。20行parameterValues值为空
package com.ajie.train.web.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.ajie.train.dao.TrainDao;
import com.ajie.train.dao.impl.TrainDaoImpl;public class DeleteServlet extends HttpServlet {
private TrainDao td = new TrainDaoImpl(); @Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String[] parameterValues = req.getParameterValues("fuxuan1");
// System.out.println("长度"+parameterValues.length);
//td.delteTrainInfoByTrainNo("5019");
if (parameterValues != null) {
for (int i = 0; i < parameterValues.length; i++) {
td.delteTrainInfoByTrainNo(parameterValues[i]);
}
}
resp.sendRedirect("IndexServlet");
// req.getRequestDispatcher("IndexServlet").forward(req, resp);
}
}jsp 复选框 删除CheckBoxServlet
解决方案 »
- 考大家一个小问题~(纯思想)
- 抽象Connection类为什么可以直接调用?
- 高分求解:页面里的附件如何调用本地程序打开的方式
- lucene遍历文件夹时建(更新)索引的问题
- 文件上传错误,急啊,就这点分了,帮帮我吧
- 请教在win2008上部署tomcat+jsp的问题
- 请问这样写对吗?List topicid=(ArrayList)request.getAttribute("temptid");
- 请教:在JSP中调入JavaBean时为什么总是报错“不能解析符号”?
- 通过对话框形式打开窗口在执行history.back()操作如何保证原有内容存在??
- 谁有站内搜索程序?急!
- 在使用HashMap、ArrayList构造数据时出现OutOfMemoryError
- 十万火急
然后将选中的checkbox的value用逗号分隔拼接起来,然后拼接成一个servlet请求URL,然后设置表单form的action属性为拼接成的URL链接,最后手动提交表单,form.submit();你懂的。希望能帮到你!如需更多帮助,请加入Java飞虎队!
Java飞虎队欢迎各路菜鸟老鸟加入一起交流讨论。群号105098806
function onDelete(){
var param = new Array();
var checked = document.getElementsByName('checkBox');
for(var i=0; i < checked .length ; i++){
if(checked[i].checked){
param.push(checked[i]);
}
}
window.location.href('deleteServlet?param=' + param);}
大概就这样, 没有测试 ,楼主 试一下吧
向servlet 提交,servlet中获得id在通过id从数据库中删除,重新全部查询放到list中再转回本页面!
var param =new Array();
var checked = document.getElementsByName('checkBox');
for(var i=0; i < checked .length ; i++){
if(checked[i].checked){
param.push(checked[i]);
}
}
var id = param.join(",");
window.location.href('deleteServlet?id=' + id);
}
<td><a href="javascript:onDelete()">删除</a></td>
然后在后台接受id字符串用spirit(",")拆分得到一个数组,这就是所需id
对所有的复选对象进行迭代,取出他们一个个value值id拼接成一个字符串后,后台接收,用spit炸开,得到所有需要删除的id,通过dao删除数据库即可
这句位置合适不过要写成这样昨天只大概写了下function onDelete(){
var param =new Array();
var checked = document.getElementsByName('fuxuan1');
for(var i=0; i < checked .length ; i++){
if(checked[i].checked){
param.push(checked[i].value);
}
}
var id = param.join(",");
window.location.href('deleteServlet?id=' + id);
}
</script>
后台String[] s=request.getPramterValues("aaa");
然后迭代所有的s
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript"> function onDelete(){
var checkBox= document.getElementsByName("checkBox");
var flag=false;
var url="/trainSys/deleteServlet?"
var count =0;
for(var i=0;i<checkBox.length;i++){
if(checkBox[i].checked){
flag=true;
count++;
if(count%2==0){
url+="&checkBox="+checkBox[i].value ;
}else{
url+="checkBox="+checkBox[i].value;
}
}
}
alert(url);
if(!flag){
alert("请选择车次");
return false;
}
window.location.href=url;
}
</script>
</head> <body>
<table align="center" width="80%" cellspacing="0" cellpadding="5">
<tr align="center">
<td><a href="javascript:onDelete()">删除</a></td>
<td>车次</td>
<td>发车-到达</td>
<td>发时-到时</td>
<td>车型</td>
<td>运行时间</td>
<td>里程</td>
</tr>
<c:if test="${!empty list}">
<c:forEach items="${list}" var="train">
<tr align="center">
<td><input type="checkbox" name="checkBox" value=${train.trainNo}></td>
<td>${train.trainNo}</td>
<td>${train.stratStation}-${train.arrivalStation}</td>
<td>${train.startTime}-${train.arrivalTime}</td>
<td>${train.type}</td>
<td>${train.runtime}</td>
<td>${train.mile}公里</td>
</tr>
</c:forEach>
</c:if>
</table>
<div>${str }</div>
</body>
</html>第一幅 代码从26行看
package com.ajie.train.web.servlet;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.ajie.train.dao.TrainDao;
import com.ajie.train.dao.impl.TrainDaoImpl;public class DeleteServlet extends HttpServlet {
private TrainDao td = new TrainDaoImpl(); @Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String[] parameterValues = req.getParameterValues("checkBox");
td.delteTrainInfoByTrainNo(parameterValues);
resp.sendRedirect("IndexServlet");
}
}
第二幅代码
package com.ajie.train.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.ajie.train.dao.TrainDao;
import com.ajie.train.dao.entity.TrainInfo;
import com.ajie.train.dao.util.BaseDao;public class TrainDaoImpl implements TrainDao{
private BaseDao bd = new BaseDao();
public void delteTrainInfoByTrainNo(String[] trainNo) {
StringBuffer sql =new StringBuffer("delete from train_info where 1<>1 ");
for (int i = 0; i < trainNo.length; i++) {
sql.append(" or train_no=?");
}
String sql1=sql.toString();
bd.update(sql1, trainNo );
} public List<TrainInfo> findAllTrainInfo() {
List<TrainInfo> list =new ArrayList<TrainInfo>();
String sql="select * from train_info";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rst=null;
conn=bd.getConnection();
try {
pstmt= conn.prepareStatement(sql);
rst = pstmt.executeQuery();
while(rst.next()){
String no = rst.getString("train_no");
String startStation = rst.getString("train_start_station");
String arrivalStation = rst.getString("train_arrival_station");
String startTime = rst.getString("train_start_time");
String arrivalTime = rst.getString("train_arrival_time");
String type=rst.getString("train_type");
String runtime=rst.getString("train_runtime");
int mile=Integer.parseInt(rst.getString("train_mile"));
TrainInfo trainInfo =new TrainInfo(no,startStation,arrivalStation,startTime,arrivalTime,type,runtime,mile);
list.add(trainInfo);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
第三幅代码
效果都做出来了,这些知识部分代码。我菜鸟,大家说的其实不大懂,不过我会努力的
<td><a href="deleteServlet?">删除</a></td>
<td>车次</td>
<td>发车-到达</td>
<td>发时-到时</td>
<td>车型</td>
<td>运行时间</td>
<td>里程</td>
</tr>
<c:if test="${!empty list}">
<c:forEach items="${list}" var="train">
<tr align="center">
<td><input type="checkbox" name="fuxuan1" value=${train.trainNo}></td>
<td>${train.trainNo}</td>
<td>${train.stratStation}-${train.arrivalStation}</td>
<td>${train.startTime}-${train.arrivalTime}</td>
<td>${train.type}</td>
<td>${train.runtime}</td>
<td>${train.mile}公里</td>
</tr>把 <td><a href="deleteServlet?">删除</a></td> 放到下边 <td>${train.mile}公里</td>
?号 后边 跟 ID 按 ID 删除 你放到上边 那是啥意思