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!ログール |