0

很抱歉一堆 Struts2 / JSP 问题,但我有一个使用Display 标签生成的表格:

<display:table name="table" pagesize="10" id="row" requestURI="">
<display:column title="Action">
    <s:form theme="simple">
        <s:submit action="remove" value="Remove" 
        onclick="return confirm('Are you sure you want to delete this item?');"/>
        <s:submit action="displayEdit" value="Edit"/>
    </s:form>
</display:column>
<display:column property="cpc" title="CPC"/>
<display:column property="companyName" title="Company Name"/>
<display:column property="eventType" title="Event Type"/>
<display:column property="industryType" title="Industry Type"/>
<display:column property="previousEvents" />
<display:column property="creditNotifications" />
<display:column property="interimNotifyEnterprise" />
</display:table>

现在我希望能够删除或编辑某一行(我已经写出了操作),但是我将如何获取每一行的特定数据,以便我可以告诉我的 Action 类要编辑或删除哪一行?

4

3 回答 3

3

我在你前几天问的上一个问题中提到了这一点。你只需要在你的行中添加一些东西,可能是一个隐藏的字段,它可以用来唯一地标识项目。

我建议<s:hidden key="rowID" />在行中使用一个,它将与操作一起提交。只要您的对象上有类似的属性,并且在删除操作中,您有一个设置器来接收该值,您就可以使用它来唯一地标识该行。

于 2010-08-15T03:24:42.957 回答
0

似乎您的表在每行对象类中没有唯一标识符字段。您可以在要显示的 bean-class 中添加 field -id。(公司 bean 类中的公司 ID)。这样表格中的每一行都将显示唯一的“公司”对象,并且根据“公司 ID”字段,您可以通过将“公司 ID”传递给 Action 类来编辑/删除选定的对象。

您可能不喜欢在 UI 布局中向最终用户显示“companyId”列。在这种情况下,您可以使用“companyId”作为参数创建“编辑”和“删除”列的超链接。

有关更多详细信息,请参阅此站点上的displaytag 教程。

于 2010-08-14T06:05:59.340 回答
0

使用下面获取行ID。例如,我使用单选按钮,

<display:column  property="radioButton" title="ID">
                  <input type="radio" value='<%=data_rowNum.intValue()-1%>' name='rowNr' onClick="fnEnableControls()"/>
</display:column>

现在,您可以使用轻松获取 rowNr 的值,req.getParameter并且基于此,您可以从您提供给显示标签表的列表中获取记录。

于 2012-01-19T17:58:49.353 回答