簡體   English   中英

如何檢索使用Struts2中的單選按鈕選擇的行的值?

[英]How to retrieve the values of the row selected using radio button in Struts2?

我已經基於迭代器顯示了一個表格,其中每行都有一個單選按鈕,這是基於要通過單擊按鈕執行編輯和刪除操作的選定行的。 如何通過單擊“編輯”或“刪除”按鈕來檢索所選行中的所有值?

這是我的代碼:

<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不是唯一的,因此我無法使用它來檢索我選擇的行中的值

在您的代碼中,您沒有編輯功能,因為您正在使用<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匹配的記錄來訪問選定的元素。

您可以使用迭代器#ctr.index屬性而不是id來自動實現,但是列表必須同步;

通過使用Map而不是List,並使用id作為鍵,使用myObject作為值,可以以一種更好的方式自動實現。

請享用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM