2. ActionForm
Struts 2章 ActionForm
- 2.1. ActionFormの実装
- 2.2. ActionFormの設定
- 2.3. Actionクラスでの利用
- 2.4. パラメータ値の受け取り
- 2.5. ActionFormのresetメソッド
2.1. ActionFormの実装
ActionFormはWebページのForm要素にあるパラメータ値を格納するためのJava Beanです。「org.apache.struts.action.ActionForm」を拡張してクラスを作成するのですが(「org.apache.struts.action.ActionFormBean」ではない事に注意!!)、基本的なsetter/getterメソッドを実装を行うだけで作業は終了します。後は設定を行うだけで、「HTTPリクエストから値を読み取ってJava Beanに設定する」という面倒な処理をActionServletが自動的に行ってくれます。ActionFormはStrutsにおける最も強力な機能という事ができます。
以下のWebページのForm要素からの値を受け取るActionFormを考えます。商品リストを作成するための商品入力ページを想定しています。
<html>
<body>
<form action="...">
<table>
<tr><td>商品名</td><td><input type="text" name="name"></td></tr>
<tr><td>メーカ名</td><td><input type="text" name="maker"</td></tr>
</table>
<input type="submit" value="登録">
</form>
</body>
</html>
先ほどの通り、ActionFormはorg.apache.struts.action.ActionFormを拡張して作成します。
package sample;
import org.apache.struts.action.ActionForm;
public class ProductForm extends ActionForm{
private String name="";
private String maker="";
public void setName(String name){
this.name=name;
}
public String getName(){
return(name);
}
public void setMaker(String maker){
this.maker=maker;
}
public String getMaker(){
return(maker);
}
}
HTTPリクエストから取り出した値を設定するため、必ずsetterメソッドは必要です。setterメソッドの名前は「setXXX」で、「XXX」の部分をパラメータ名と同じにします。getterメソッドはHTTPリクエストを処理する上では必要ないのですが、後にActionクラスで処理を行う時点で値を取り出すため、必要になってきます。
(実習課題1)
以下の条件を満たすActionFormを作成しなさい。
- Formに入力された社員データを格納するActionForm。
- 社員データには
- 名前
- 住所
の2つのデータが含まれている。

