#java #javascript #html #jsp
#java #javascript #HTML #jsp
Вопрос:
На странице jsp, в зависимости от количества записей, этот tr будет выполнен и показан пользователям.
for(int i=0; i<NoOfRecords.length;i ){
<tr>
<td width="15%"> Transit Account amp; <%= acctId%>
</td>
<td width="15%"> <%=MultiModeConstants.GL_ACCT_NO%>
</td>
<td width="45%">
<input type="text" id="multiModeAcctNo" name="multiModeAcctNo" desc="Multi Mode Transit Account Number" maxlength="9" class="body" size="9" tabindex="3" >
</td>
<td width="15%">
Deposit
</td>
<td width="15%">
$ <%= transactioAmount%>
</td>
</tr>
}
В зависимости от количества записей на странице jsp будет заполнено количество строк,
multiModeAcctNo, поле будет введено пользователем (multiModeAcctNo);
Например, если имеется 4 записи, я 4 раза ввожу разные multiModeAcctNo на странице.
После отправки страницы я могу получить только первое поле, я теряю остальные 3 значения.
Предположим, если я прочитаю только одну строку, то смогу нормально получить данные. Что мне нужно сделать?
Я использую java и jsp в качестве языков программирования.
Комментарии:
1. Хотя вы выполняете итерацию до полной длины, вы не получаете индекс для каждого значения объекта. И как вы сохранили значение в своем объекте? Сначала проверьте какой-нибудь пример того, как выполнять итерацию по содержимому объекта java-tips.org/java-se-tips/java.lang/the-enhanced-for-loop.html
Ответ №1:
Вам необходимо создать динамические имена для полей ввода, которые могут быть такими:
for(int i=0; i<NoOfRecords.length;i ){
<tr>
<td width="15%"> Transit Account amp; <%= acctId%>
</td>
<td width="15%"> <%=MultiModeConstants.GL_ACCT_NO%>
</td>
<td width="45%">
<input type="text" id="multiModeAcctNo_<%=i%>" name="multiModeAcctNo_<%=i%>" desc="Multi Mode Transit Account Number" maxlength="9" class="body" size="9" tabindex="3" >
</td>
<td width="15%">
Deposit
</td>
<td width="15%">
$ <%= transactioAmount%>
</td>
</tr>
}
Теперь в вашем сервлете [надеюсь, что вы также не получите NoOfRecords.длина там] получает значение каждого ввода, предоставляя его динамически генерируемые имена. Может быть как:
String str = new String[NoOfRecords.length];
for(int i=0; i<NoOfRecords.length;i ){
str[i] = request.getParameter("multiModeAcctNo_" i);
}
Ответ №2:
Я не уверен, какой тип отправки вы делаете, но вы можете захотеть использовать другой идентификатор для своего поля ввода, поскольку при повторении вы используете тот же multiModeAcctNo
идентификатор в своем <input>
.
Если вы используете форму и публикуете элемент, который вы можете назвать input
чем-то вроде multiModeAcctNo[]
, то в вашем JSP-файле укажите его как элемент массива POST (не уверен, возможно ли это с Java). Просто идея.