如何在不使用复选框或单选按钮的情况下将表中选定的数据发送到Struts2中

How to send data selected in a table into action in Struts2 without using checkbox or radiobutton?

本文关键字:数据 Struts2 情况下 单选按钮 复选框      更新时间:2023-09-26

我有一个使用struts:iterator标记显示的表。表值包含在ArrayList中。我在列表的每一行上都有一个编辑按钮。当用户单击编辑按钮时,该行的内容应发送到操作和相应的结果页面。我不允许使用复选框和单选按钮。

是否有一些param标记我可以使用,将该行设置为参数,并将其返回到结果页中。或者有没有一种方法可以在会话中设置该行并从会话中取回?如何在Struts2中实现这一点?

您不应该将整行设置为参数,您只需要设置该行的参数id。然后你可以在需要保存时再次检索记录。要设置参数,你可以使用类似的链接

<s:a action="edit" value="Edit"><s:param name="id" value="%{#row[ID]}"/></s:a>   

使用以下代码,您可以将每行的值设置到bean中。例如,当您单击删除链接时,我们可以使用<s:bean/>实例化bean类的对象,<s:param/>可以用于将值设置到bean中

<s:iterator value="contactList" var="contactBean">   
<s:url id="deleteUrl" action="deleteLink">
        <s:bean name="net.viralpatel.contact.model.Contact"></s:bean>
        <s:param name="id" value="#contactBean.id"></s:param>
        <s:param name="firstName" value="#contactBean.firstName"></s:param>
    </s:url>
        <s:a href="%{deleteUrl}">
             Delete
        </s:a>
</s:iterator>

您可以使用锚点标签在这行上尝试一些东西

<s:iterator value="list">
<s:url action="companyedit" var="listUrl" >
    <s:param name="id"><s:property value="id" /></s:param>
    <s:param name="operation">Edit</s:param>
</s:url>
    <s:a href="%{listUrl}"><s:property value="companyName"/></s:a>
    <s:property value="companyType" />
    .
    .
    .
</s:iterator>

希望这能帮助