簡體   English   中英

數據不插入表Java Servlet?

[英]data isnt inserting into table java servlet?

我想弄清楚這段代碼的問題是什么。 當我填寫表格並按保存按鈕時,頁面會像刷新一樣閃爍,沒有錯誤和數據插入。

我有一個工作表,擴展了該表上的類。 我使用了多對一關系,所以我不知道錯誤在哪里。

jsp文件輸入

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@page import="eshop.model.Category"%>
<%@page import="java.util.List"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<jsp:include page="header.jsp" /> 
<body>


${msg}
<div>
    <div style="float:left;width:200px">
        <jsp:include page="menu.jsp" />
    </div>
    <div style="float:left">


    <form action="ProductController"  method="post">
    <input type="hidden" name="action" value="add"/>

        <table>
        <tr>
            <td>Product ID</td>
            <td> 
                <input type="text" name="pid"/>
            </td>
        </tr>
            <tr>
                <td>Product Name</td>
                <td><input type="text" name="pname" /></td>
            </tr>
            <tr>
                <td>Category Id</td>
                <td>
                    <%
                 List<Category> aList = (List) request.getAttribute("clist");
                 %>
                 <select name="cat">
                 <%
                 for(Category c : aList){
                      %>
                      <option  value="<%out.println(c.getCatId());%>">
                      <%out.println(c.getCatName() ); %>
                      </option>
                      <%    }   %>                    
                    </select>                       
                </td>           
            </tr>
            <tr>
                <td>Supplier ID</td>
                <td><input type="text" name="sid" /></td>
            </tr>
            <tr>
                <td>Unit Price</td>
                <td><input type="text" name="up" /></td></tr>
            <tr>           
            <td>Quantity</td>
                <td><input type="text" name="qua"/></td>
            </tr>
            <tr>
            <td>Units in Stock</td>
            <td> <input type="text" name="uis"/></td>
            </tr>
            <tr>
            <td>Units on Order</td>
                <td> 
                <input type="text" name="uoo"/></td>
            </tr>
            <tr><td>Reorder</td>
                <td> 
                <input type="text" name="rol"/></td></tr>

            <tr>
                <td><input type="reset" value="Clear" /></td>
                <td><input type="submit"  value="save" /></td>
            </tr>
        </table>
    </form>
     </div>
     </div>
</body>
</html>

servlet代碼完成

   @WebServlet("/ProductController")
   public class ProductController extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ProductController() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException ,IOException {
         String action = request.getParameter("action");
             ProductServices cs = new ProductServices();
              if(action.equalsIgnoreCase("add")){
                CategoryServices c=new CategoryServices();
                List<Category> aList = c.getAllCategories();
                 request.setAttribute("clist", aList);      
                 request.getRequestDispatcher("products.jsp").forward(request, response);           
                 }else if(action.equalsIgnoreCase("save")){
                 Products p = new Products();
                 Category ct=new Category();                        
                 p.setPid(Integer.parseInt(request.getParameter("pid")));                
                 p.setProductName(request.getParameter("pname"));
                 int cat=Integer.parseInt(request.getParameter("cat"));
                 ct.setCatid(cat);               
                 p.setCatid(ct);
                 p.setSupplierId(Integer.parseInt(request.getParameter("sid")));             
                 p.setUnitPrice(Integer.parseInt(request.getParameter("up")));
                 p.setQuntitypunit(request.getParameter("qua"));
                 p.setUnitsInStock(Integer.parseInt(request.getParameter("uis")));
                 p.setUnitsOnOrder(Integer.parseInt(request.getParameter("uoo")));
                 p.setReorderLevel(Integer.parseInt(request.getParameter("rol")));

                cs.addProduct(p);
                request.setAttribute("msg", "Record Saved Successfully");
                request.getRequestDispatcher("products.jsp").forward(request, response);
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request,response);
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        processRequest(request,response);
    }

這是課

   @Entity
   @Table (name="products")

public class Products implements Serializable{
    @Id
    @Column(name="product_id")
    private int Pid;

    @Column(name="product_name")
    private String productName;

    @Column(name="supplierid")
    private int supplierId;

    @ManyToOne
    @JoinColumn(name="categoryid")
    private  Category catid;

    @Column(name="quantity_per_unit")
    private String quntitypunit;

    @Column(name="unit_price")
    private float unitPrice;

    @Column(name="unitinstock")
    private int unitsInStock;

    @Column(name="unitonorder")
    private int unitsOnOrder;

    @Column(name="reorderlevel")
    private int reorderLevel;



    public String getProductName() {
        return productName;
    }
    public void setProductName(String productName) {
        this.productName = productName;
    }
    public int getSupplierId() {
        return supplierId;
    }
    public void setSupplierId(int supplierId) {
        this.supplierId = supplierId;
    }
    public Category getCatid() {
        return catid;
    }
    public void setCatid(Category catid) {
        this.catid = catid;
    }
    public String getQuntitypunit() {
        return quntitypunit;
    }
    public void setQuntitypunit(String quntitypunit) {
        this.quntitypunit = quntitypunit;
    }
    public float getUnitPrice() {
        return unitPrice;
    }
    public void setUnitPrice(float unitPrice) {
        this.unitPrice = unitPrice;
    }
    public int getUnitsInStock() {
        return unitsInStock;
    }
    public void setUnitsInStock(int unitsInStock) {
        this.unitsInStock = unitsInStock;
    }
    public int getUnitsOnOrder() {
        return unitsOnOrder;
    }
    public void setUnitsOnOrder(int unitsOnOrder) {
        this.unitsOnOrder = unitsOnOrder;
    }
    public int getReorderLevel() {
        return reorderLevel;
    }
    public void setReorderLevel(int reorderLevel) {
        this.reorderLevel = reorderLevel;
    }

    public int getPid() {
        return Pid;
    }
    public void setPid(int pid) {
        Pid = pid;
    }   

}

這是服務代碼,我將其擴展到正在為其他表工作的基礎

public class ProductServices extends Base {
    public void addProduct(Products pro){
         save(pro);
    }

您應該使用響應而不是請求對象來設置響應對象。

請參閱ProductController類中的ProcessRequest()的最后幾行

除非這可能會轉發到另一個請求(但我在這里看不到該代碼?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM