我已经使用迭代器显示了一个表,每个行都有一个单选按钮,基于所选的行我想通过单击按钮执行编辑和删除操作。如何通过单击编辑或删除按钮来检索所选行中的所有值?
这是我的代码:
<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不是唯一的,因此我无法使用它来检索我选择的行中的值
答案 0 :(得分:0)
在您的代码中,您没有编辑功能,因为您使用的<s:property/>
标记仅输出文本。
对于编辑功能,您需要一个交互式标记,例如<s:textfield/>
。
请注意,您的List
和Bean
(以及所有属性)值均为非标准值,因为它们应以小写字母开头(getList()
- &gt; {{1 },list
- &gt; getBean()
)。请参阅JavaBeans标准,并使用CamelCase表示法。
bean
通过这种方式,你需要采取行动:
<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>
您将通过循环列表并选取@Getter @Setter private Long selectedId;
@Getter @Setter private List<MyObject> list;
字段与id
匹配的记录来访问所选元素。
您可以使用迭代器selectedId
属性而不是#ctr.index
自动实现该属性,但必须同步列表;
您可以使用id
代替列表,并使用Map
作为键,并使用id
作为值,以更好的方式自动实现这一目标。
享受