All articles in struts

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で … More beanタグライブラリ

アクションからアクションにフォワードした際のrequestスコープのActionFormについて

場合によってはアクションからアクションにフォワードしたい場合がある.で,この際にrequestスコープのActionFormがどうなるかというのを,はっきりさせてみた.なお,ここではStruts-1.1で実験した.Struts-1.0.2とは動きが割と異なるようなので注意.問題確認用サンプルrequestスコープの範囲ActionFormの生成ActionFormの初期化異なるActionFormを持つActionへのフォワードActionFormの引渡しまとめ 問題 確認用サンプル 確認のためにサンプルを作成してみた.これ.ビルド方法はだいたい以下.展開ant initlibディレクトリの下にstrutsのjarファイルを置く.動作確認時は以下を置いた.commons-beanutils.jar commons-lang.jar struts-legacy.jarcommons-collections.jar commons-logging.jar struts.jarcommons-digester.jar commons-validator.jarcommons-fileupload.jar jakarta-oro.jarsrc/WEB-INFの下にstrutsのタグリブを置く.動作確認時は以下を置いた.struts-form.tld struts-template.tldstruts-html.tld struts-tiles.tldstruts-bean.tld struts-logic.tldstruts.tld struts-nested.tldant warを実行すると,warファイルができる. requestスコープの範囲 結論から言うと,servletと同様,HTTPセッションの範囲と同じである.すなわちHTTPリクエストを受けてからレスポンスを返すまでであり,HttpServletRequestの生存期間と一致する…というのは,ActionFormのインスタンスはrequestスコープならHttpServletRequest,それ以外ならHttpSessionにsetAttributeされる.以下はStrutsのソースから.ActionForm instance = … More アクションからアクションにフォワードした際のrequestスコープのActionFormについて