------------------addProduct.jsp---------------
<form action="${pageContext.request.contextPath}/servlet/ManagerServlet?operation=addProduct" method="post"">
<table width="80%" border="0">
商品全称:<input type="text" id="Pro_name" name="Pro_name" style="height:30px" >
商品编码:<input type="text" style="height:30px" id="Pro_code" name="Pro_code">
<input type="submit" value="保存"/>
</form>
--------------------------ManagerServlet-------------------
public class ManagerServlet extends HttpServlet {
private BusinessService s = new BusinessServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String operation = request.getParameter("operation");
if("addProduct".equals(operation)){
addProduct(request, response);
}
}
//添加产品到数据库中
private void addProduct(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Product p = WebUtil.fillBean(request, Product.class);
s.addProduct(p);
System.out.println(p.getPro_name()+p.getPro_id());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
明白我的意思没,检查你的bean。肯定有字段是form中没有的。你现在的赋值方法,要求必须一一对应
------------------addProduct.jsp---------------
商品全称: | |||
商品编码: | |||
--------------------------ManagerServlet-------------------
public class ManagerServlet extends HttpServlet {
private BusinessService s = new BusinessServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String operation = request.getParameter("operation");
if("addProduct".equals(operation)){
addProduct(request, response);
}
}
//添加产品到数据库中
private void addProduct(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Product p = WebUtil.fillBean(request, Product.class);
s.addProduct(p);
System.out.println(p.getPro_name()+p.getPro_id());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
证明你页面上的值根本就没传过来,或者说,它 就没值
这个没法说。你就粘贴一段servlet代码,说明不了什么问题
JSP的呢?有没有设置name属性。。。
你输入控件name没有值啊。。要设置name,设置id不会提交的
<table width="80%" border="0">
<tr>
<td>商品全称:</td>
<td colspan="3"><input type="text" id="Pro_name" name="Pro_name" style="height:30px" ></td>
</tr>
<tr>
<td>商品编码:</td>
<td colspan="3"><input type="text" style="height:30px" id="Pro_code" name="Pro_code"></td>
</tr>
<tr>
<td colspan="3"></td>
<td ><input type="submit" value="保存"/></td>
</tr>
</table>
整个form标签贴出来,
问题很明显,你的bean中,字段叫“id”,form 中,pro_code的对应字段呢?
WebUtil.fillBean 这个方法里
用request.getParameter("Pro_code");
request.getParameter("Pro_name"); 是可以接收到值的。
System.out.println(p.getPro_name()+p.getPro_id());从这里开一看出你的Bean里的字段应该是pro_id,但是你得表单字段却叫name="Pro_code",所以WebUtil.fillBean就没有办法把pro_code 放入到pro_id中啊