gpt4 book ai didi

java - 准备用于处理数据库条目的 JSP 页面

转载 作者:行者123 更新时间:2023-11-30 10:45:16 24 4
gpt4 key购买 nike

我正在尝试制作一个页面,您可以在其中搜索演出数据库,如果您按 Enter,它会显示所有演出,并且在每次演出之后您都有按钮编辑和删除,我将在其中添加正确的功能。

到目前为止,我正在测试我按下的是哪个按钮的打印输出,并查看 ID 字段是否被正确传输。如果我搜索特定演出,然后在该结果上单击其中一个按钮,它会显示正确的 EDIT 3、DELETE 2
例如,取决于它是哪个演出。但是,当整个页面显示所有演出时,我在任何演出上按下一个按钮,我总是打印 EDIT 1,DELETE 1,所以它总是将 ID 设置为 1,无论我点击哪个。

    <%
if(request.getAttribute("gigs")==null){
response.sendRedirect("searchGig");
return;
}
%>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="bean.Gig"%>
<jsp:useBean id="gigs" type="java.util.ArrayList<Gig>" scope="request" />
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Gigplanner</title>
<link href="gigplanner.css" rel="stylesheet">
</head>
<body>


<form id="msform" action="searchGig" method="post">
<!-- progressbar -->
<ul id="progressbar">
<li><a href="index.jsp">Front Page</a></li>
<li><a href="addGig.jsp">Add Gig</a></li>
<li class="active"><a href="searchGig.jsp">Search Gigs</a></li>
<li><a href="settings.php">Settings</a></li>
</ul>


<fieldset>
Search Gig:
<input type="text" name="hakusana" value="" >
<input type="submit" class="show-button" value="Search" >
<br>
<div class="showgig">

<%

for(int i=0;i<gigs.size();i++){
out.print("<table>");

out.print("<tr><td>Title:");
out.print("<td>" +(gigs.get(i).getTitle()+ "</td>"));

out.print("<tr><td>Venue:");
out.print("<td>" +(gigs.get(i).getVenue()+ "</td>"));

out.print("<tr><td>Date:");
out.print("<td>" +(gigs.get(i).getDate()+ "</td>"));

out.print("<tr><td>Time:");
out.print("<td>" +(gigs.get(i).getTime()+ "</td>"));

out.print("<tr><td>Country:");
out.print("<td>" +(gigs.get(i).getCountry()+ "</td>"));

out.print("<tr><td>Address:");
out.print("<td>" +(gigs.get(i).getAddress()+ "</td>"));

out.print("<tr><td>Postcode:");
out.print("<td>" +(gigs.get(i).getPostcode()+ "</td>"));

out.print("<tr><td>City:");
out.print("<td>" +(gigs.get(i).getCity()+ "</td>"));

out.print("<tr><td>Description:");
out.print("<td>" +(gigs.get(i).getDescription()+ "</td>"));

out.print("<input type='hidden' name='id' value="+(gigs.get(i).getId()+">"));
out.print("<tr><td><input type='submit' name='act' class='show-button' value='edit'></td>");
out.print("<td><input type='submit' name='act' class='show-button' value='delete'></td>");

out.print("</tr></table><br>");
}

String act = request.getParameter("act");
String id = request.getParameter("id");
if (act == null) {
//no button has been selected
} else if (act.equals("delete")) {
//delete button was pressed
out.print("DELETE " + Long.valueOf(id));


} else if (act.equals("edit")) {
//edit button was pressed
out.print("EDIT " + Long.valueOf(id));
} else {
//something else
}


%>
</div>
</fieldset>
</form>
<br />


</body>
</html>

最佳答案

请求对象的 getParameter() 方法依赖于 html 元素的名称,该名称可能对许多 html 元素通用

在您的情况下,该方法会获取第一个具有与其关联的名称的元素,而不考虑其他元素。

当您搜索特定演出时,页面上可能只有一个元素,因此无法弄错 ID,而当所有这些元素都在页面上时,您将得不到预期的结果。

您应该使用 getParameterValues(),然后找到一种方法来检索您感兴趣的特定值(例如,通过使用与每个演出关联的复选框,每个都有相同的名称属性但不同的值)或为每个演出创建一个 form 元素。

关于java - 准备用于处理数据库条目的 JSP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37102670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com