ColdFusion 11 から、関連するすべての ColdFusion タグを CFScript ブロック内で使用できるようになりました。ColdFusion 11 より前のバージョンでは、ColdFusion タグのほとんどは、スクリプトのシンタックスで使用できませんでした。スクリプトブロックでコーディングをして、タグを呼び出す必要がある場合、スクリプトブロックから出てタグのシンタックスを使用するしかありませんでした。
ColdFusion 11 に追加された CF タグのスクリプトサポートにより、CFSCRIPT ブロック自体にすべてのコードを記述できます。
スクリプトサポートは、単純なタグとネストされたタグの両方で使用できます。例えば、次のように CFScript ブロック(refer/script/http_simple.cfm)で単純な CFHTTP タグを使用できます。
<cfscript> cfhttp(url=”www.google.com”, method=”GET”); </cfscript>
また、次のように、CFHTTPPARAM を使用して追加情報を渡す CFHTTP タグを呼び出して、ネストされた呼び出しを行うこともできます。
<cfscript> Cfhttp(URL=http://#CGI.SERVER_NAME#.../target.cfm, method=”GET”) { cfhttpparam(type="url", name='emp_name' value=”Jacob”); cfhttpparam(type="header", name='myheader' value=”My custom header”); } Writeoutput(cfhttp.filecontent); <cfscript>
スクリプトサポートの一般的なシンタックスとして、ColdFusion タグは、タグ名を関数名として使用する CFSCRIPT ブロックの関数呼び出しのように呼び出されます。タグ属性は、引数が関数に渡されるように、カンマ区切りの名前と値のペアとして渡されます。子タグ(および一般に本文)は、関数ブロックのように、中括弧内に定義されます。
カスタムタグのスクリプトサポート
また、スクリプトのシンタックスは、カスタムタグを呼び出すように拡張されます。2 つのメソッドを使用して ColdFusion でカスタムタグを呼び出すことができ、両方とも、CFSCRIPT ブロックでサポートされます。
- CFM ファイルベースのカスタムタグ
- 接頭辞ベースのカスタムタグ
CFM ファイルベースのカスタムタグの例
この例では、次のように、カスタムタグ happybirthday.cfm が custom1.cfm から呼び出されます。
<cfscript> // cfm file based custom tags Cf_happybirthday(name=”john”, birthdate=”December 5, 1987”); </cfscript>
接頭辞ベースのカスタムタグの例
接頭辞ベースのカスタムタグを呼び出すことができます。最初に taglib を読み込み、taglib フォルダーでカスタムタグを使用するために接頭辞を定義します。カスタムファイル validateUser.cfm は、securityTags フォルダーにあります。このカスタムタグは、次のように接頭辞 security と共に使用されます。
<cfscript> // Prefix based custom tags cfimport(taglib="securityTags", prefix="security"); security:validateUser(name=’John’); </cfscript>