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つのデータが含まれている。