使用显示标签从JSP页面中的一排获取值
-
28-09-2019 - |
题
抱歉,有一堆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
基于此,您可以从您提供的显示标签表的列表中获取记录。
不隶属于 StackOverflow