Struts2 でリクエストパラメータを取得する。 Struts1 では ActionForm を用いていたが struts2 ではもっと自由度がました。

Action に ActionSupport クラスを継承させると、そのActionにパラメータ名に対応するsetterを定義しておけば勝手に設定してくれるということだが、自由すぎるので ModelDriven インタフェースを実装する方式を使うことにした。

こちらは、Actionに ModelDriven インタフェースを実装すると public Object getModel() の実装を強制されるので、リクエストパラメータを受け取りたいクラス(struts1 の ActionForm に相当するもの)を返す様にする。このクラスは事前にActionのコンストラクタ等でインスタンスを生成してインスタンス変数に保持しておき、それを返す。

オブジェクトは struts の ActionForm と同じ様に設定される。