"Action" 即使在 JSP 中更改也不会在 servlet 中更改



我已经获取了表单信息,并用每个表单对象填充了一个数组列表。现在我想将每个表单对象显示在一个名为 displayEvent.jsp 的新 jsp 上。但是,在displayEvent.jsp上,我将指针设置为我的servlet和方法get,并将"action"更改为"display",但我的servlet似乎没有识别出动作已经改变。

displayEvent.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<c:import url="/includes/header.html" />
<c:import url="/includes/navigation.html" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<link rel="stylesheet" href="styles/main.css" type="text/css"/>
</head>
<body>
<div class="float-box1">
<h1>Nice Strike!</h1>
<img src="https://usatftw.files.wordpress.com/2018/04/epa_italy_soccer_serie_a.jpg?w=1000&h=600&crop=1" alt="Bicycle Kick" height="500" width="500">
</div>
<div class="float-box">
<h2>Reserved Field Times</h2>
<c:forEach var="event" items="${eventList.events}"> 
<tr align="center">
<td>${event.eventTitle}</td>
<td>${event.description}</td>
<td>${event.fieldNumber}</td>
<td>${event.date}</td>
<td>${event.startTime}</td>
<td>${event.stAMPM}</td>
<td>${event.endTime}</td>
<td>${event.etAMPM}</td> 
</tr>
</c:forEach>
<form action="AddEventServlet" method="get">
<input type="hidden" name="action" value="display">
</form>
</div>
<div style="clear: both;"></div>
</body>
<footer>
<p1><c:import url="/includes/footer.jsp" /></p1>
</footer>
</html>

AddEventServlet.java:

public class AddEventServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String url = "/index.jsp";
HttpSession session = request.getSession();
EventList eventList = new EventList();
request.setAttribute("eventList", eventList);
// get current action
String action = request.getParameter("action");
System.out.println(action);
if (action == null) {
action = "home";  // default action
}
if (action.equals("add")) {
// get parameters from the request
String eventTitle = request.getParameter("Event Title");
String description = request.getParameter("Description");
String fieldNumber = request.getParameter("Field Number");
String date = request.getParameter("Date");
String startTime = request.getParameter("Start Time");
String stAMPM = request.getParameter("stAMPM");
String endTime = request.getParameter("End Time");
String etAMPM = request.getParameter("etAMPM");
System.out.println("hello world");
System.out.println(eventTitle);
System.out.println(description);
System.out.println(fieldNumber);
System.out.println(date);
System.out.println(startTime);
System.out.println(stAMPM);
System.out.println(endTime);
System.out.println(etAMPM);
// use regular Java class
Event event = new Event(eventTitle, description, fieldNumber, date, startTime, stAMPM, endTime, etAMPM);
eventList.addEvent(event);
System.out.println(event.toString());
// store the Event object in request and set URL
request.setAttribute("event", event);
url = "/enterEvent.jsp";
request.setAttribute("successfulEntry", "Successfully entered event!");
request.getRequestDispatcher(url)
.forward(request, response);
}
if (action.equals("home")) {
url = "/index.jsp";     // the "index" page
request.getRequestDispatcher(url)
.forward(request, response);
} else if (action.equals("display")) {
System.out.println("hello reeeee");
String eventTitle = request.getParameter("eventTitle");
String description = request.getParameter("description");
String fieldNumber = request.getParameter("fieldNumber");
String date = request.getParameter("date");
String startTime = request.getParameter("startTime");
String stAMPM = request.getParameter("stAMPM");
String endTime = request.getParameter("endTime");
String etAMPM = request.getParameter("etAMPM");
request.getAttribute("eventList");
if (eventList == null) {
eventList = new EventList();
}
request.setAttribute("eventList", eventList);
url = "/displayEvent.jsp";

System.out.print(eventList);
request.getRequestDispatcher(url)
.forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}
<servlet>
<servlet-name>AddEventServlet </servlet-name>
<servlet-class>AddEventServlet </servlet-class>
</servlet>

您是否在 Web .xml上设置了映射属性?

最新更新