JSP隐藏字段在servlet中产生空值

JSP hidden field produces null in servlet

本文关键字:空值 servlet 隐藏 字段 JSP      更新时间:2023-09-26

我有一个隐藏字段的形式,其值是由javascript设置的。我已经确认值确实被设置了。但是,当我尝试将它发送给servlet时,它产生一个空值。我使用POST方法和"提交"按钮向servlet提交。用户在"qtyText"文本框中输入。在JS中,它的值是动态设置的。为什么它不会被发送到servlet?JS

   function(calculateTotalPrice(txtbxvalue, price)
  {
   myForm = document.forms[0];        
      var txtBx = myForm.elements['qtyText'];
      var txtBxHidden = myForm.elements['qtyTextHidden'];
      for(var i = 0; i < txtBx.length; i++) 
         {
          var curTxtBx = txtBx[i].value; 
          var txtBxHiddenBx = txtBxHidden[i];
           txtBxHiddenBx.value = curTxtBx;
         }
   }
HTML

<table>
   <c:forEach items="${ListInServlet}" var= "exBean">
  <form name = "tableForm" method = "post" action= "/rpsapp/someservlet">
    <input type="hidden" name="productId" value= "<c:out Value 
                                          = "${exBean.productId}"/>"  />
         <input type="hidden"  value = "somevalue" name="qtyTextHidden"/>
         <input name = "qtyText" type = "textbox" size = "2" value = "" onChange 
                              = "calculateTotalPrice(this, '${exBean.price}')"/>
   </c:forEach>
  </form>
</table>

你必须创建和产品一样多的隐藏变量。

  <form name = "tableForm" method = "post" action= "/rpsapp/someservlet">
   <c:forEach items="${ListInServlet}" var= "exBean">
    <input type="hidden" name="productId${exBean.productId}" value= "<c:out Value 
                                          = "${exBean.productId}"/>"  />
         <input type="hidden"  value = "somevalue" name="qtyTextHidden${exBean.productId}"/>
         <input name = "qtyText${exBean.productId}" type = "textbox" size = "2" value = "" onChange 
                              = "calculateTotalPrice(this, '${exBean.price}')"/>
   </c:forEach>
  </form>

您的foreach语句(标签)与form标签重叠

你需要有这样的格式:

<c:forEach ...> <form ...> ... </form> </c:forEach>