Как мне создать многомерный массив http-post в JSP? - PullRequest
0 голосов
/ 02 апреля 2012

Я пытаюсь отправить (опубликовать) многомерную (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 голосов
/ 03 апреля 2012

Нет, у вас не может быть двумерного массива, такого как строки и столбцы . Но вы 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

Из сервлетов вы можете получить доступ к параметру POST, например:

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