[英]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.