小编典典

如何使用Struts2在JSP页面上使用多个按钮(每行一个)

jsp

我真的不知道该如何为我的问题加上标题,但是我有一个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还是很陌生…


阅读 411

收藏
2020-06-08

共1个答案

小编典典

我不确定为什么您只为按钮嵌套了一个表格…也许是为了布局。我建议使您的每个顶层都具有一个表单,其中包含用于标识该行的另一个属性以及两个提交按钮。

例如这样的东西(未经测试)

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

您可以使用一个表单,每个表单具有多个操作。只需在该行中放置可以唯一标识要执行操作的行。

因此,将发生的事情是,提交该行时,rowID将包含在请求中,并作为setter(setRowID())的参数发送到您的特定操作。只需从原始数据中唯一识别出的东西中进行挑选即可。

2020-06-08