Отправлять динамически создаваемые данные таблицы в Java-сервлет - нет javascript/jquery

114
7

В настоящее время у меня есть файл jsp:

<c:choose>
<c:when test = "${fn:length(song.songInfo) > 0}">
<form action='cart' method='POST'>
<table style="width:1000px" style="text-align:center">
<tr>
<th>Song Title</th>
<th>Song Artist</th>
<th>Album Title</th>
<th>Genre</th>
<th>Publisher</th>
<th>Year</th>
<th>Price</th>
<th>Select ?</th>
</tr>
<c:forEach var="item" items="${song.songInfo}">
<c:set var="split" value="${fn:split(item,';')}" />
<tr>
<td>${split[0]}</td>
<td>${split[1]}</td>
<td>${split[2]}</td>
<td>${split[3]}</td>
<td>${split[4]}</td>
<td>${split[5]}</td>
<td>${split[6]}</td>
<td>${split[7]}</td>
<td><input type="checkbox" name="songInfo" value="${split[0]} "></td>
</tr>
</c:forEach>
</table>
<input type="submit" value="Add to Cart"/>
</form>

</c:when>
<c:otherwise>
<p>No results found</p>
</c:otherwise>
</c:choose>

Я хочу отправить элементы <td> в servlet Java, если соответствующий checkbox для checkbox строки.

Я использую strCheckBoxValue = request.getParameter("songInfo"); в моем servlet но это приведет только к извлечению одной строки.

Может ли кто-нибудь предложить способ, которым я мог бы отправить всю информацию servlet для любого количества строк в таблице БЕЗ использования javascript/JQuery?

Спасибо за помощь.

спросил(а) 2021-01-19T15:12:28+03:00 2 месяца, 4 недели назад
1
Решение
63

Вы можете либо дать каждому TD соответствующий скрытый ввод с именем, чтобы он был отправлен с формой:

<td>${split[0]}<input type='hidden' name='split0' value='${split[0]}' /></td>
<td>${split[1]}<input type='hidden' name='split1' value='${split[1]}' /></td>

Или просто введите видимые входы TD:

<td><input type='text' name='split0' value='${split[0]}' /></td>
<td><input type='text' name='split1' value='${split[1]}' /></td>

Если вы дадите каждому уникальное имя (как я уже говорил выше), то в вашем сервлете:

String split0 = request.getParameter("split0"); 
String split1 = request.getParameter("split1");

Если вы дадите им одноименное имя, то есть name='split':

String[] split = request.getParameterValues("split");

ответил(а) 2021-01-19T15:12:28+03:00 2 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема