目次へ

2. ActionForm

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

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp