Как использовать несколько кнопок (по одной на каждой строке) для страницы JSP с помощью Struts2 - PullRequest
2 голосов
/ 11 августа 2010

Я действительно не знаю, как озаглавить свой вопрос, но у меня есть страница JSP с таблицей, отображающей элементы из базы данных, и я хочу, чтобы в каждой строке была кнопка для удаления или редактирования этой конкретной строки.Вот часть моей страницы JSP, где я генерирую таблицу (таблица и кнопки генерируются нормально)

<style type="text/css">
  table { empty-cells: show; }
</style>
<table border="1">
<tr>
<th>Action</th>
  <s:iterator value="columnNames" id="name">
    <th> <s:property value="name" /> </th>
  </s:iterator>
</tr>
 <s:iterator value="%{table}" id="row">
 <tr>
   <td>
   <table><tr><td>
   <s:form action="edit" namespace="/." theme="simple">
   <s:submit value="Edit" name="edit" />
   </s:form></td>
   <td>
   <s:form action="remove" namespace="/." theme="simple">
   <s:submit value="Remove" name="remove" />
   </s:form></td></tr>
   </table></td>
     <s:iterator value="%{#row}" id="cell">
          <td><s:property value="%{#cell}"/></td>
     </s:iterator>
 </tr>
 </s:iterator>
</table>

Как бы я получить его, чтобы при нажатии на конкретную кнопку в определенной строке,что моя программа будет знать, над какой строкой она должна выполнить действие (изменить / удалить)?Извините, я все еще довольно новичок в Struts2 ...

1 Ответ

1 голос
/ 11 августа 2010

Я не уверен, почему у вас есть таблица, вложенная только для кнопок ... возможно, это для макета.Я бы предложил сделать так, чтобы у каждого вашего верхнего уровня была форма с другим атрибутом, идентифицирующим строку, и две кнопки отправки.

например что-то вроде этого (не проверено)

<s:form theme="simple">
    <s:hidden key="rowID" />
    <s:submit action="remove" value="Remove"/>
    <s:submit action="edit" value="Edit"/>
</s:form>

Вы можете иметьодна форма с несколькими действиями для каждого.Просто поместите что-то в строку, которая однозначно идентифицирует строку, с которой вы будете работать.

Итак, что произойдет, это то, что, когда это будет отправлено, rowID будет включен в запрос и отправлен вашемуконкретное действие в качестве параметра для установщика (setRowID ()).Просто выберите что-то из ваших исходных данных, которые однозначно идентифицируют это.

...