« ColdSpring | メイン | ColdFusion 版 Ruby on Rails その名も ColdFusion on Wheels »

ColdSpring で Bean へデータを渡す

では、コントローラーではないコンポーネントに ColdSpring の Bean を渡すには、どうすればよいのか。
ロジックの、CartProcess.cfc に itemArrayBean を渡す方法を考えてみよう。

bean タグは、子要素に、constructor-arg と、property を持つことができる。
constructor-arg は、コンストラクタの引数として渡すためのタグ。
property は、setter 関数で渡すためのタグとなっている。


 <bean id="shopping" class="shopping.model.CartProcess">
  <constructor-arg name="itemAB">
   <ref bean="itemArrayBean" />
  </constructor-arg>
 </bean>

と ColdSpring.xml に記述してやることによって、CartProcess.cfc の初期化の際に、引数で自動的に渡してくれるのである。
初期化の関数は、デフォルトで、init になっているようで、


 <cffunction name="init" returntype="any" access="public" output="false">
  <cfargument name="itemAB" required="true">
  <cfset variables.itemArray = arguments.itemAB.getItemArray() />
  <cfreturn this />
 </cffunction>

という記述を、CartProcess.cfc にしてやると、CartProcess.cfc 上で、いつでも商品リストデータが利用可能になる。

一方、

  <constructor-arg name="itemAB">
   <ref bean="itemArrayBean" />
  </constructor-arg>

を、

  <property name="itemAB">
   <ref bean="itemArrayBean" />
  </property>

とすると、自動的に、CartProcess.cfc にある、setItemAB という関数を探して itemArrayBean を渡してくれるのである。

再び、サンプルアプリケーションを作ってみた。
できることは同じであるが、ColdSpring を利用して、コントローラーへ、自動的に、データを渡している。

サンプルColdSpring

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/46

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年04月23日 10:01に投稿されたエントリーのページです。

ひとつ前の投稿は「ColdSpring」です。

次の投稿は「ColdFusion 版 Ruby on Rails その名も ColdFusion on Wheels」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。