jsp中提交到Servlet的表单获取的值为什么都为NULL?

------------------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中啊