beanタグライブラリ

beanタグライブラリはstruts-bean.tldに定義されている.こいつを使用すると,sessionにあるbeanなどから値を取り出せたりする.
Sessionにいれた値を取り出す
SessionにいれたBeanから値を取り出す
SessionにいれたBeanからさらにBeanを取り出してそのBeanから値を取り出す
ActionFormBeanの値を取り出す

Sessionにいれた値を取り出す

あらかじめ,Actionクラスなどで,
request.getSession().setAttribute(“hoge”,”fuga”);
としておけば,JSPで

とするとfugaが出力される.

SessionにいれたBeanから値を取り出す

あらかじめ,Actionクラスなどで,
Sample sample = new Sample();
request.getSession().setAttribute(“hoge”,sample);
などとしておいて,

とすると,hogeのgetFuga()が呼び出されて,その返り値が出力される.
実は先に説明したSessionにいれた文字列を取り出す例は,ここで説明するパターンの特殊な場合である.つまり属性propertyを指定しなければ,nameで指定したオブジェクトがそのまま(toString())出力される.

SessionにいれたBeanからさらにBeanを取り出してそのBeanから値を取り出す

あらかじめ,Actionクラスなどで,
Sample sample = new Sample();
request.getSession().setAttribute(“hoge”,sample);
などとしておいて,JSPで


などとすると,まず一行目で属性idで指定した変数fooにhoge.getFuga()の返り値が格納され,二行目でfoo.getFooValue()の返り値が出力される.

ActionFormBeanの値を取り出す

JSPでは,そのJSPへforwardしたActionで指定したActionFormBeanは自動的にsessionに突っ込まれるらしく,こちらで突っ込むことなく使用できる.したがって,struts-config.xmlで

などとしておくとResult.jspで

でActionFormBeanに指定したHogeActionFormクラスのインスタンス(論理名Hoge)に対してgetFuga()が実行され,その返り値が出力される.

This article was written by Fujiko