Jsp 使用Java Servlet获取删除按钮
我有一个名为LeggTilHandlekurv(shoppingCart)的servlet、一个jsp和一个Vare(Item)类。它的意思是向shoppingCart中添加项目,这很好,但问题是如何让delete功能工作?在leggtilhandlekurv.jsp中,您可以选择键入一个项目,该项目将显示一个删除按钮。我希望“删除”按钮能正常工作。到目前为止,我的尝试是从if(vare.equals(“remove”))开始标记出servlet类Jsp 使用Java Servlet获取删除按钮,jsp,servlets,Jsp,Servlets,我有一个名为LeggTilHandlekurv(shoppingCart)的servlet、一个jsp和一个Vare(Item)类。它的意思是向shoppingCart中添加项目,这很好,但问题是如何让delete功能工作?在leggtilhandlekurv.jsp中,您可以选择键入一个项目,该项目将显示一个删除按钮。我希望“删除”按钮能正常工作。到目前为止,我的尝试是从if(vare.equals(“remove”))开始标记出servlet类 手稿 Min handleliste Leg
手稿
Min handleliste
Legg til vare:
瓦勒
您可以使用隐藏的输入字段,该字段的值为vareNavn
,表单标签将表单提交到servlet并获得响应。因此,您的jsp代码如下所示:
<td>
<form action="LeggTilHandlekurv" method="post">
<!-- hidden input-->
<input type="text" hidden name="item" value="<%=vare.getVareNavn() %>">
<!--added name attribute-->
<input type="submit" name="remove" value="Remove item">
</form>
</td>
//check if request is for remove
if (request.getParameter("remove") != null) {
//get values
String item = request.getParameter("item");
//get data from session
ArrayList<Vare> varer1 = (ArrayList<Vare>) request.getServletContext().getAttribute("handlekurv");
Iterator<Vare> it = varer1.iterator();
//iterate through datas
while (it.hasNext()) {
Vare name = it.next();
//check if values matches
if (name.getVareNavn().equals(item)) {
it.remove(); //remove
}
}
//pass updated value to jsp page
session.setAttribute("handlekurv", varer1);
request.getRequestDispatcher("leggtilhandlekurv.jsp").forward(request, response);
}
另外,在这里指定name属性
,并将用于添加新值的所有代码放在if(request.getParameter(“add”)!=null){//put code here}
谢谢,但这对我不起作用,我是否应该用替换您的jsp代码,以及在切换到if(request.getParameter(“add”)!=null)时替换您的jsp代码当我在if语句中添加了所有内容时,代码将不起作用。添加代码中是否有我应该删除的内容?我在td中使用了表单
,因为当您单击提交按钮时,只有表单中的值才会被提交。此外,这些代码已经过测试。我刚刚添加了if(request.getParameter(“add”)!=null)
关于add codes,在我这方面效果很好。好的,非常感谢。我忘记在add代码周围添加if(request.getParameter(“add”)!=null)。
<%@page import="oppgave1.Vare"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Handleliste</title>
</head>
<body>
<%
if(session.getAttribute("pass")==null){
response.sendRedirect("login.jsp");
}
%>
<h1>Min handleliste</h1>
<form action="LeggTilHandlekurv" method="post">
Legg til vare: <br>
<input type="text" name="vare"> <br>
<input type="submit" value="Add item">
</form>
<table>
<th>Varer</th>
<%
ArrayList<Vare> varer = new ArrayList<Vare>();
if(request.getServletContext().getAttribute("handlekurv")!=null){
varer=(ArrayList<Vare>) request.getServletContext().getAttribute("handlekurv");
if(!varer.isEmpty()){
for(Vare vare: varer){
%>
<tr>
<td> <%=vare.getVareNavn() %></td>
<td> <input type="submit" name="remove" value="Remove item"> </td>
</tr>
<%
}
}
}
%>
</table>
</body>
</html>
<td>
<form action="LeggTilHandlekurv" method="post">
<!-- hidden input-->
<input type="text" hidden name="item" value="<%=vare.getVareNavn() %>">
<!--added name attribute-->
<input type="submit" name="remove" value="Remove item">
</form>
</td>
//check if request is for remove
if (request.getParameter("remove") != null) {
//get values
String item = request.getParameter("item");
//get data from session
ArrayList<Vare> varer1 = (ArrayList<Vare>) request.getServletContext().getAttribute("handlekurv");
Iterator<Vare> it = varer1.iterator();
//iterate through datas
while (it.hasNext()) {
Vare name = it.next();
//check if values matches
if (name.getVareNavn().equals(item)) {
it.remove(); //remove
}
}
//pass updated value to jsp page
session.setAttribute("handlekurv", varer1);
request.getRequestDispatcher("leggtilhandlekurv.jsp").forward(request, response);
}