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/>

Listand Bean(およびすべての属性) の値は、小文字 ( getList()-> list, getBean()-> ) で始まる必要があるため、非標準であることに注意してください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>

このようにして、アクションで必要になります:

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

リストをループし、idフィールドが一致するレコードを取得することで、選択した要素にアクセスしますselectedId

の代わりにiterator#ctr.indexプロパティを使用することで、これを自動的に実現できますidが、リストを同期する必要があります。

MapList の代わりに a を使用しid、キーとして、および値として使用することで、より良い方法で自動的にそれを実現できmyObjectます。

楽しみ

于 2013-03-26T15:10:04.443 に答える