#java #eclipse #jsp #servlets #dao
#java #eclipse #jsp #сервлеты #dao
Вопрос:
EditDeleteServlet — это мой сервлет со списком всех студентов. Вот код:
Student sbean = new Student();
EditDeleteDAO sDAO = new EditDeleteDAO();
String command = request.getParameter("command");
PrintWriter out = response.getWriter();
out.print(command);
try{
if(command.equals("Submit"))
{
String id=request.getParameter("id");
String studName=request.getParameter("studName");
String icNum=request.getParameter("icNum");
String matrixID=request.getParameter("matrixID");
String contactNum=request.getParameter("contactNum");
String email=request.getParameter("email");
String course=request.getParameter("course");
sbean.setId(Integer.parseInt(id));
sbean.setStudName(studName);
sbean.setICNum(icNum);
sbean.setMatrixID(Integer.parseInt(matrixID));
sbean.setContactNum(Integer.parseInt(contactNum));
sbean.setEmail(email);
sbean.setCourse(course);
EditDeleteDAO.insertDetails(sbean);
List<Student> list = sDAO.getAllDetails();
if(list!=null)
{
request.setAttribute("list",list);
RequestDispatcher rd = request.getRequestDispatcher("/studListing.jsp");
rd.forward(request, response);
}
}
studListing.jsp — это моя страница jsp, где я хочу отобразить свои данные здесь
список = request.getAttribute(«список»); %>
Комментарии:
1. Я не совсем уверен, в чем заключается ваш вопрос на данный момент, но вам следует избегать наличия Java-кода в ваших файлах jsp.
2. Замените
request.setAttribute("list",list);
наrequest.setAttribute("EditDeleteServlet",list);
, и вы могли бы извлечь его с помощью<% List<Student> list = (List<Student>)request.getAttribute("EditDeleteServlet"); %>
Ответ №1:
Вы добавили в свой запрос с key
именем list
request.setAttribute("list",list);
поэтому вы должны извлечь его, используя это имя в вашем JSP
Также используйте EL, а не java в вашем JSP
<c:foreach items="${list}" var="student">
${student.studName}
<c:forEach>
Ответ №2:
Вы должны использовать request.setAttribute() для добавления пар ключ-значение, которые может использовать ваша страница jsp. В вашем коде:
request.setAttribute("list", list);
Затем вы можете извлечь атрибут в вашем jsp следующим образом:
<% List<Student> list = request.getAttribute("list"); %> // Note that the name of the attribute is "list"
Но если вы собираетесь выполнять итерации по списку, рекомендуется использовать EL:
<c:forEach items="${list}" var="listItem">
<c:out value="${listItem.eid}"/>
</c:forEach>
Ответ №3:
По сути, JSP и сервлеты используют одно и то же пространство, фактически JSP компилируется в сервлет на серверной части, и они используют одни и те же HttpServletRequest и HttpServletResponse, поэтому вы можете задать значение в сервлете в запросе и извлечь в JSP, используя один и тот же объект запроса.
например, внутри сервлета, request.setAttribute(«список»,list);
внутри JSP, request.getAttribute(«список»);
В качестве альтернативы вы могли бы также использовать объект session, чтобы поделиться этим в вашей HttpSession.