@634

Apache Struts - データの受け渡し(1) Beanのプロパティを渡す

Advertisement

データを渡す

ActionクラスからJSPへデータを渡す場合、プロパティとそのプロパティに対するsetter/getterを持つクラス(要するにJavaBean)を利用します。

Strutsでは、Actionクラス(またはその先のBusinessクラス等)で生成したBeanをリクエストに格納し、Strutsカスタムタグのbean:writeを利用して値を参照することができます。

サンプルコード

Bean(TestBean.java)
import java.io.Serializable;

public class TestBean implements Serializable{
    private String name;

    public TestBean(){

    }

    /**
     * @return name を戻します。
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     *            name を設定。
     */
    public void setName(String name) {
        this.name = name;
    }
}
プロパティnameと、それに対するsetter/getterメソッドを定義しています。

Actionクラス(TestAction.java)
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import struts.bean.TestBean;

public class TestAction extends Action {
    public ActionForward execute(ActionMapping map, ActionForm frm,
            HttpServletRequest request, HttpServletResponse response) {

        TestBean bean = new TestBean();
        bean.setName("mametaro");
        request.setAttribute("profile", bean);

        return map.findForward("success");
    }
}
Actionクラスでは、nameを設定したBeanをリクエストに格納しています。このときに設定したキーとなる値(上記の例ではprofile)を後述のJSPで利用します。

JSP
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

<html:html locale="true">
<head>
<title>result</title>
</head>
<body>

result<br>
<bean:write name="profile" property="name" />

</body>
</html:html>
profileというキーでBeanを取得後、nameプロパティを参照して画面に表示します。

bean:writeタグはname属性の値を元にBeanを自動的に検索します。検索はsession→request→pageの順に行われます。
その際、内部的にはpropertyの値に対応するgetterメソッド(上記の例の場合、getName()メソッド)を利用します。getterメソッドが定義されていないと例外がスローされます。

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール