抱歉,有一堆Struts2 / JSP问题,但是我有一张桌子 显示标签:

<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>

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

有帮助吗?

解决方案

我在上一个 问题 你前几天问。您只需要在您的行中(可能是隐藏的字段)中的某些东西,可以用来唯一地识别该项目。

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

其他提示

看来您的表在每行类对象中没有唯一的标识符字段。您可以在要显示的豆类中添加字段-ID。 (CompanyId在Company Bean类中)。因此,表中的每一行都会显示唯一的“公司”对象,并根据“ CompanyID”字段,您可以通过将“ CompanyID”传递到Action类来编辑/删除选定的对象。

您可能不想在UI布局中显示“ CompaniD”列来进行最终用户。在这种情况下,您只需使用“ CompanyID”作为参数创建“编辑”和“删除”列的超链接。

请参阅此处的DisplayTag教程 地点 有关更多细节。

在下面使用以获取行ID。例如,我使用了广播按钮,

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top