SAStruts/ActionForm/構造化されたパラメータの可変個数受け

SAStruts/ActionForm/構造化されたパラメータの可変個数受け

構造化されたパラメータの可変個数受け。 つまり、複数列の行が増減する表を更新するような状況

1個分のパラメータに当たる内部クラスを作成する

構造化されたパラメータを可変個数受ける場合はformを特殊な書き方にする。

class HogeHogeForm{
    public String piyo;
    public List<Hoge> hogeList;
    public static class Hoge{
        String age;
        String name;
    }
}

のように 静的 な内部クラスを作ってそのリストの入れ物を作っておく。

画面側から構造化された内部クラスに値をセットする

この構造にSAStruts/JSPから値を送り込むときは

<input type="text" name="hogeList[0].age" value="" />
<input type="text" name="hogeList[1].age" value="" />
<input type="text" name="hogeList[2].age" value="" />

のように書けば自動的にマッピングしてくれる

逆にJSP側から引き出すときは

${hogehogeForm.hogeList[0].age}
${hogehogeForm.hogeList[1].age}
${hogehogeForm.hogeList[2].age}

のような感じでアクセスしたりできる

構造化されたパラメータ管理のformのセッション管理

SAStruts/入力チェックのフォームをセッション管理する(リクエストを跨いで再利用したい場合)際にSerializableをくっつけるのだが・・・これを内部クラスのほうにもくっつけてやる必要がある

class HogeHogeForm implements Serializable{
    private static final long serialVersionUID = 1L;
    public String piyo;
    public List<Hoge> hogeList;
    public static class Hoge implements Serializable{
        private static final long serialVersionUID = 1L;
        String age;
        String name;
    }
}

タグ

java/sastruts/action_form/mapping_valiable_struct_params.txt · 最終更新: 2020-06-05 13:56 by ore