Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

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

解答例はこちら



前のページへ TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa