【问题标题】:How to retrieve the values of the row selected using radio button in Struts2?如何检索使用 Struts2 中的单选按钮选择的行的值?
【发布时间】:2013-03-26 13:58:33
【问题描述】:

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

这是我的代码:

<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 不是唯一的,因此我无法使用它来检索我选择的行中的值

【问题讨论】:

  • 只是通过给定的ID从数据库中检索它?
  • ID不是它的主键,它有一个复合主键
  • 由什么合成?请通过编辑您的问题添加所有信息

标签: java html jsp struts2 struts


【解决方案1】:

在您的代码中,您没有编辑功能,因为您使用的&lt;s:property/&gt; 标记仅输出文本。

对于编辑功能,您需要一个交互式标签,例如 &lt;s:textfield/&gt;

请注意,您的 ListBean(以及您的所有属性)值是非标准的,因为它们应该以小写字母开头 (getList() -> list, getBean() -> @ 987654328@)。请参考 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 匹配的记录。

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

您可以通过使用Map 而不是List,并使用id 作为键,使用myObject 作为值,以一种更好的方式自动实现这一点。

享受

【讨论】:

  • 谢谢解答,但问题是ID不唯一
  • 如何从一个动作到另一个动作中获取 List 的值?我需要使用会话吗?
猜你喜欢
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 2013-06-14
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多