ビジネスロジックと表示を分離することは、一般的に適切なコーディング方法です。作成した ColdFusion ページには、ビジネスロジック (データベースクエリー) と表示 (出力コードブロック) の両方が含まれています。この 2 つを分離するには、クエリーを ColdFusion コンポーネント (CFC) に設定します。この結果、ビジネスロジックと表示が分離されます。さらに、アプリケーション内のどこででも、このクエリーを簡単に再利用できるようになります。詳細については、『ColdFusion MX 開発ガイド』のColdFusion コンポーネントの作成と使用を参照してください。
ColdFusion コンポーネント (CFC) は、ファイル名の後に .cfc 拡張子を付けて保存される特殊なファイルです。CFC には、データと関数を含むことができます。CFC 内では、関数はメソッドとして参照されます。ColdFusion で実行するアクション (データベースのクエリーなど) は、コンポーネントのメソッドに含まれます。1 つの CFC には、多数のメソッドを設定できます。CFC 内の各メソッドは、1 つの変数だけを返すことができます。次に、一般的な CFC のシンタックスを示します。
<cfcomponent>
<cffunction name="firstMethod">
<!--- このメソッドの CFML コードがここに入ります。 --->
</cffunction>
<cffunction name="secondMethod">
<!--- このメソッドの CFML コードがここに入ります。 --->
</cffunction>
</cfcomponent>
メモ: Dreamweaver を使用している場合は、[カテゴリ] リストの [ダイナミックページ] を選択した後、[ダイナミックページ] リストの [ColdFusion コンポーネント] を選択します。
<cfcomponent displayName="Get Trips" hint="Get trip information"> <cffunction name="basicList" displayName="List all trips" hint="List trips in same order as in table" access="public" returnType="query" output="false"> <cfreturn> </cffunction> </cfcomponent>
Dreamweaver を使用すると、コードを入力しなくても ColdFusion コンポーネントを作成することができます。
CFC にクエリーをコピーするには、CFML を CFC の cffunction の開始タグと終了タグの間にコピーします。
<cfquery name="TripList" datasource="CompassTravel"> SELECT trips.tripName FROM trips </cfquery>
<cfcomponent displayName="Get Trips" hint="Get trip information"> <cffunction name="basicList" displayName="List all trips" hint="List trips in same order as in table" access="public" returnType="query" output="false"> <cfquery name="TripList" datasource="CompassTravel"> SELECT trips.tripName FROM trips </cfquery> <cfreturn> </cffunction> </cfcomponent>
<cfreturn TripList>
ColdFusion コンポーネントのメソッドにコピーされたクエリーを実行するには、メソッドを呼び出す必要があります。メソッドを呼び出すには、cfinvoke タグを使用します。cfinvoke タグ内に、ColdFusion コンポーネント名、呼び出すメソッド、呼び出しページに返すクエリーを指定します。コンポーネント名には、パッケージ "cfdocs.getting_started.my_app.components." が含まれています。このパッケージの名前は、スラッシュの代わりにピリオドが使用されている以外は、パスと同じです。パスと同じように、パッケージにより、コンポーネントの場所が指定されます。
<cfinvoke component="cfdocs.getting_started.my_app.components.gettrips" method="basicList" returnvariable="TripList"> </cfinvoke>
Dreamweaver を使用すると、コードを記述しなくても CFC のメソッドを呼び出すことができます。
returnvariable の値がクエリー名 TripList となるよう変更します。
returnvariable="TripList"
ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告
バージョン7
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/coldfusion/7_jp/htmldocs/retriev5.htm