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);
}

}


10个回答

明白我的意思没,检查你的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代码,说明不了什么问题

EASONLEELEE
EASONLEELEE 你好,把jsp代码也补上了
5 年多之前 回复

JSP的呢?有没有设置name属性。。。

woshilinjunda
woshilinjunda 回复EASONLEELEE: 会不会因为form后面多了个双引号?
5 年多之前 回复
woshilinjunda
woshilinjunda 回复EASONLEELEE: 你发的jsp代码根本看不到。。。怎么知道出什么问题。。
5 年多之前 回复
EASONLEELEE
EASONLEELEE 有,补上了,设置为name不行,后来设置为id也不行
5 年多之前 回复

你输入控件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>
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复EASONLEELEE: 注意你的服务器端的name值,没有name是不会提交的
5 年多之前 回复
EASONLEELEE
EASONLEELEE 你好,改用您这段代码也不行= =
5 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐