0

我已经使用迭代器显示了一个表,每行都有一个单选按钮,根据选择的行我想通过单击一个按钮来执行编辑和删除操作。如何通过单击编辑或删除按钮检索所选行中的所有值?

这是我的代码:

<s:iterator value="List" var="Bean">
        <tr> 
        <td><s:radio theme="simple" name="ID" list="#{'ID':''}"/>

        </td>
        <td ><s:property value="ID"/></td>
        <td ><s:property value="NAME"/></td>
        <td ><s:property value="STATUS"/></td>
        <td ><s:property value="TYPE"/></td>      
 </tr> 

</s:iterator>

使用s:radio我可以检索 ID,但我想检索所选行中的所有值。

是否有任何可能的方法只为选定的行设置 bean,以便我在操作类中检索它的值?

ID 不是唯一的,因此我无法使用它来检索我选择的行中的值

4

1 回答 1

0

在您的代码中,您没有编辑功能,因为您使用的<s:property/>标签仅输出文本。

对于编辑功能,您需要一个交互式标签,例如<s:textfield/>.

请注意,您的ListBean(以及您的所有属性)值是非标准的,因为它们应该以小写字母(getList()-> listgetBean()-> bean)开头。请参考 JavaBeans 标准,并使用 CamelCase 表示法。

<s:iterator value="list" var="bean" status="ctr">
    <tr> 
        <td> <s:radio name="selectedId" list="#{'id':''}  
                      theme="simple" />                       </td>

        <td> <s:property value="id"/>                         </td>

        <td> <s:textfield name="bean[#ctr.index].name"/>      </td>
        <td> <s:textfield name="bean[#ctr.index].status"/>    </td>
        <td> <s:textfield name="bean[#ctr.index].type"/>      </td>
    </tr> 
</s:iterator>

这样,您将需要在 Action 上:

@Getter @Setter private Long selectedId; 
@Getter @Setter private List<MyObject> list;

您将通过循环列表访问所选元素,并选择id字段匹配的记录selectedId

您可以通过使用 iterator#ctr.index属性而不是 来自动实现这一点id,但列表必须同步;

Map您可以通过使用 a而不是 List 并使用idas key 和myObjectas value以更好的方式自动实现这一点。

享受

于 2013-03-26T15:10:04.443 回答