如何在JSP中创建多维http-post数组?

时间:2012-04-02 19:22:45

标签: java html jsp http-post multidimensional-array

我正在尝试将多维(2D)html格式提交(发布)到JSP。

在HTML中有以下代码:

<tr class="odd">
    <td>
        <input type="checkbox" name="row1['attribute']" value="Druckerei" id="attribute-1" />
    </td>
    <td>
        <label for="attribute-1">Druckerei</label>
    </td>
    <td>
        <input type="text" name="row1['weight']" size="3" value="0" />
    </td>
</tr>
<tr class="even">
    <td>
        <input type="checkbox" name="row2['attribute']" value="Erscheinungstag" checked="checked" id="attribute-2" />
    </td>
    <td>
        <label for="attribute-2">Erscheinungstag</label>
    </td>
    <td>
        <input type="text" name="row2['weight']" size="3" value="0" />
    </td>
</tr>

JSP 是否有办法处理2D帖子数据(可能类似于PHP)?

如果我有不同的HTML代码会更容易吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

不,你不能拥有像行和列一样的2D数组。但你can achieve this by sending multiple values for a POST data parameter的工作原理如下:

您的表单可能如下所示:

<tr class="odd">
<td>
    <input type="checkbox" name="attribute" value="Druckerei" id="attribute-1" />
</td>
<td>
    <label for="attribute-1">Druckerei</label>
</td>
<td>
    <input type="text" name="weight" size="3" value="0" />
</td>
</tr>
<tr class="even">
<td>
    <input type="checkbox" name="attribute" value="Erscheinungstag" 
     checked="checked" id="attribute-2" />
</td>
<td>
    <label for="attribute-2">Erscheinungstag</label>
</td>
<td>
    <input type="text" name="weight" size="3" value="0" />
</td>
</tr>

您的POST数据将发送如下:

url?attribute=Druckerei,Erscheinungstag&weight=3,3

您可以从servlet访问POST参数,如:

String[] attributes = request.getParameterValues("attribute");
String[] weights = request.getParameterValues("weight");