【问题标题】:Pass ArrayList to servlet?将 ArrayList 传递给 servlet?
【发布时间】:2014-05-02 10:20:20
【问题描述】:

如何将数据作为 ArrayList 传递到我的 servlet?

<Table id="table1">
     <tr>
          <td>
              <input type="hidden" value="test1_1" name="name1_1" />
          </td>
         <td>_
              <input type="hidden" value="test2_1" name="name2_" />
          </td>
         <td>
              <input type="hidden" value="test3_1" name="name3_1" />
          </td>
     </tr>
     <tr>
          <td>
              <input type="hidden" value="test1_2" name="name1_2" />
          </td>
         <td>
              <input type="hidden" value="test2_2" name="name2_2" />
          </td>
         <td>
              <input type="hidden" value="test3_2" name="name3_2" />
          </td>
     </tr>
     <tr>
          <td>
              <input type="hidden" value="test1_3" name="name1_3" />
          </td>
         <td>
              <input type="hidden" value="test2_3" name="name2_3" />
          </td>
         <td>
              <input type="hidden" value="test3_3" name="name3_3" />
          </td>
     </tr>
</Table>




List<Model> newList = new ArrayList<Model>();

servlet newList 必须包含 3 个模型

Model1 with value of [getSomething1 = test1_1, getSomething2 = test2_1, getSomething3 = test3_1]
Model2 with value of [getSomething1 = test1_2, getSomething2 = test2_2, getSomething3 = test3_2]
Model3 with value of [getSomething1 = test1_3, getSomething3 = test2_3, getSomething3 = test3_3]

这将不限于列表中的 3 个模型,而是取决于行数。

它将根据JSP中的行数创建多个模型。

【问题讨论】:

  • 如果隐藏的输入字段作为表单的一部分提交到正确的 URL,您应该将它们作为 HttpServletRequest 参数的一部分
  • 您可以将json中的数据从at传递到servlet,并使用gson从json字符串中获取Java对象。

标签: java json servlets arraylist


【解决方案1】:

您不能将其作为 ArrayList 传递,但如果您为数组中所需的所有输入赋予相同的名称,则可以将其作为 String[] 读取。

 <input name='test' />
 <input name='test' />
 <input name='test' />

在您的 servlet 中,使用 request.getParameterValues(name)(它返回一个 String[])而不是 request.getParameter(name),它只返回一个值。

 String[] testValues = request.getParameterValues("test");

【讨论】:

  • 只是补充大卫所说的话,您还可以使用request.getParamterMap();,它将返回Map&lt;String, String[]&gt;,其中键是参数的名称,字符串数组是您的值。
猜你喜欢
  • 2017-07-28
  • 2017-11-24
  • 1970-01-01
  • 2017-06-03
  • 2011-05-20
  • 2013-11-15
  • 1970-01-01
  • 2017-01-25
  • 2014-03-09
相关资源
最近更新 更多