#javascript #struts2 #iterator
#javascript #struts2 #итератор
Вопрос:
С тегом итератора s2 я могу отображать таблицу без проблем. и у меня есть две кнопки для добавления строки и удаления строки с помощью Javascript. Ниже приведен фрагмент страницы jsp
<s:iterator value="entities" status="outerStat">
<tr>
<TD><input type="checkbox" name="chk"/></TD>
<TD>
<table width="100%" cellspacing="4" cellpadding="0" border='0'>
<s:textfield name="entities[%{#outerStat.index}].entityName" value="%{entityName}"/>
</table>
</TD>
<TD>
<table width="100%" cellspacing="4" cellpadding="0" border='0'>
<s:select list="entityTypes" value="%{entityType}"/>
</table>
</TD>
<TD>
<table width="100%" cellspacing="4" cellpadding="0" border='0'>
<s:textarea name="entities[%{#outerStat.index}].sqlStmt" cols="120" rows="4" maxlength="4000" value="%{sqlStmt}"/>
</table>
</TD>
</tr>
</s:iterator>
Мой вопрос в том, что каждый раз, когда я нажимаю кнопку addRow, как я могу сгенерировать держатель объекта для этой строки на стороне сервера? как серверная сторона узнает, сколько строк добавлено на стороне клиента?
Ответ №1:
Как вы показали, вы не будете создавать объект на стороне сервера для каждой строки при нажатии кнопки. Вы создаете форму — объект на стороне сервера не будет создан / сохранен до тех пор, пока форма не будет отправлена. Если вам нужно гарантировать порядок, вам нужно будет сохранить счетчик JavaScript для обозначения массива атрибута «name».
Вы можете создать объект на стороне сервера по щелчку мыши, выполнив вызов Ajax, создав объект и вернув HTML вместе с идентификатором элемента или что-то еще, но из вашего вопроса неясно, действительно ли это то, что вы хотите сделать.
Комментарии:
1. Да, ты прав, Дэйв, мне нужно создать объект на стороне сервера с помощью кнопки addRow, выполнив вызов Ajax. Поскольку я новичок в Ajax, есть ли у вас какой-либо аналогичный код для выполнения этой миссии?
2. Я только что узнал, что Spring предлагает один API для обработки динамических строк в таблице static.springsource.org/spring/docs/2.0.x/api/org/… Кто-нибудь знает, что struts 2 имеет аналогичную функцию?
3. @user1006080 Я действительно не знаю, что это такое. S2 имеет автоматическое преобразование типов, включая заполнение списков типами, специфичными для приложения.