有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JSP表单提交和列表填充问题

我在一个简单的JSP应用程序中遇到了一些问题。当我进入“添加或删除”页面时,我可以输入数据并提交数据,项目会按预期添加到数据库或从数据库中删除,但它不会将我返回到页面,而是将我发送到一个页面,上面写着“送达:/ToDoList”。我可以使用back按钮返回页面,但它应该只是重新加载相同的jsp页面。它以前是有效的,但我不确定我改变了什么

此外,我试图用Show List页面(Show.jsp)上的数据库中的数据填充一个表,但它给了我一个我无法理解的ConcurrentModificationException。我真的不确定我做错了什么。感谢您的帮助。ListItem对象只是一个int-itemID和string-itemDesc。代码如下:

加上。jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Add an item</title> </head> <body> <h1>Add an item</h1> <form action="AddItem" method="post"> <table> <tr><td><input type="text" name="desc" value="" size="100"/></td></tr> <tr><td><input type="submit" value="Submit" name="addSub" /></td></tr> </table> </form> <input type="submit" name="btnAdd" value="Back to menu" onclick="window.location='/ToDoList/index.jsp'"> </body> </html>

删除。jsp

<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Show list</title> </head> <body> <h1>To-Do List</h1> <form action="ShowList" method="post"> <input type="submit" value="Populate"> </form> <table> <c:forEach var="item" items="${dispList}"> <tr> <td>${item.itemID}</td> <td>${item.itemDesc}.</td> </tr> </c:forEach> </table> <input type="submit" name="btnAdd" value="Back to menu" onclick="window.location='/ToDoList/index.jsp'"> </body> </html>

秀。jsp

<%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Show list</title> </head> <body> <h1>To-Do List</h1> <form action="ShowList" method="post"> <input type="submit" value="Populate"> </form> <table> <c:forEach var="item" items="${dispList}"> <tr> <td>${item.itemID}</td> <td>${item.itemDesc}.</td> </tr> </c:forEach> </table> <input type="submit" name="btnAdd" value="Back to menu" onclick="window.location='/ToDoList/index.jsp'"> </body> </html>

物品清单。爪哇

package todolist; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Scanner; import org.apache.tomcat.util.http.fileupload.util.LimitedInputStream; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.query.Query; public class ItemList { List<ListItem> list = new ArrayList<>(); List<ListItem> tempList = new ArrayList<>(); public static SessionFactory factory; public ItemList() { super(); } public void addItem(String itemStr) { //list.add(item); //list.get(list.size() - 1).setItemNumber(list.size()); ListItem item = new ListItem(itemStr); try { factory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Failed to create sessionFactory object." + ex); throw new ExceptionInInitializerError(ex); } Session session = factory.openSession(); Transaction tx = null; Integer itemID = null; try { tx = session.beginTransaction(); itemID = (Integer) session.save(item); tx.commit(); } catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printStackTrace(); } finally { session.close(); } } public void delItem(int itemNbr) { try { factory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Failed to create sessionFactory object." + ex); throw new ExceptionInInitializerError(ex); } Session session = factory.openSession(); Transaction tx = null; ListItem item2 = (ListItem)session.get(ListItem.class, itemNbr); try { tx = session.beginTransaction(); session.delete(item2); tx.commit(); } catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printStackTrace(); } finally { session.close(); } } public List<ListItem> getList() { try { factory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Failed to create sessionFactory object." + ex); throw new ExceptionInInitializerError(ex); } Session session = factory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); Query<ListItem> queryList = session.createQuery("FROM itemlist"); tempList = queryList.list(); tx.commit(); } catch (HibernateException e) { if (tx!=null) tx.rollback(); e.printStackTrace(); } finally { session.close(); } list = tempList; return list; } public int size() { return list.size(); } }

另外。爪哇

package todolist; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class AddItem */ @WebServlet("/AddItem") public class AddItem extends HttpServlet { private static final long serialVersionUID = 1L; ItemList list = new ItemList(); /** * @see HttpServlet#HttpServlet() */ public AddItem() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd = request.getRequestDispatcher("add.jsp"); rd.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getParameter("desc")!=null) { String desc = request.getParameter("desc"); list.addItem(desc); RequestDispatcher rd = request.getRequestDispatcher("add.jsp"); rd.forward(request, response); } } }

DelItem。爪哇

package todolist; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.hibernate.HibernateException; /** * Servlet implementation class DelItem */ @WebServlet("/DelItem") public class DelItem extends HttpServlet { private static final long serialVersionUID = 1L; ItemList list = new ItemList(); /** * @see HttpServlet#HttpServlet() */ public DelItem() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub RequestDispatcher rd = request.getRequestDispatcher("delete.jsp"); rd.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if(request.getParameter("itemNbr")!=null && request.getParameter("itemNbr")!="") { int itemNbr = Integer.parseInt(request.getParameter("itemNbr")); list.delItem(itemNbr); RequestDispatcher rd = request.getRequestDispatcher("delete.jsp"); rd.forward(request, response); } } }

展示清单。爪哇

package todolist; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ShowList */ @WebServlet("/ShowList") public class ShowList extends HttpServlet { private static final long serialVersionUID = 1L; ItemList list2 = new ItemList(); /** * @see HttpServlet#HttpServlet() */ public ShowList() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd = request.getRequestDispatcher("show.jsp"); rd.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<ListItem> tempList = new ArrayList<>(); tempList = list2.getList(); request.setAttribute("dispList", tempList); RequestDispatcher rd = request.getRequestDispatcher("show.jsp"); rd.forward(request, response); } }
Tags:  

共 (0) 个答案