2017-02-28 3 views
1

私はColdFusion 11を使用しており、必要なものの非常に優れた例を持つ記事を見つけました。問題はcfscriptではなくcfタグを使用する方が良いことです。CFタグを使用してColdFusion CFScriptコードを記述することはできますか?

このコードでは、コンポーネントでcfscriptを使用しています。私の質問は、cfcでcfタグを使用して、cfclientを例のように使用すれば、期待通りに動作するのですか?

http://blogs.coldfusion.com/post.cfm/cfinventory-mobile-application

+1

FWIWは、関数が関数のfuncitonローカル変数をスコープするのを忘れました。たとえば、 'var q = queryExecute()'とか、varialbeの定義と 'return queryExecute()'だけを避けてください。 –

+0

また、引数をスコープしてクエリパラメータを使用するのを忘れていました。 Bad Adob​​e .. .. – Leigh

答えて

0

はい、それは同じように動作します。

ので、例えば

component client="true" output="false" {  
    public function getStatus(id) 
     { 
      q = queryExecute("select * FROM status where id = '#id#'", 
       null, {"datasource"="cfds"});  
      return q; 
     } 
    public function getStatusByType(type) 
     { 
     // always include type 0 status as they are global 
     q = queryExecute("select * from status where type = '#type#' 
       or type = 0", null, {"datasource"="cfds"});  
       return q; 
     } 
} 

は、私は上記のコードに改善するだろう

<cfcomponent> 
    <cffunction name="getStatus"> 
     <cfargument name="id"> 
     <cfquery name="q" datasource="cfds> 
      select * FROM status where id = '#id#' 
     </cfquery> 
     <cfreturn q> 
    </cffunction> 
    <cffunction name="getStatusByType"> 
     <cfargument name="id" datasource="cfds> 
     <cfquery name="q" datasource="cfds"> 
      select * from status where type = '#type#' 
      or type = 0 
     </cfquery> 
     <cfreturn q> 
    </cffunction> 
</cfcomponent> 

一つのことがでcfqueryparamを使用しているだろう。念のため。ジャックス答えに拡大

+0

私はこれを感謝しますが、私の質問はコードを変換するのではなく、cfscriptの代わりにcftagsを使用できますか? –

+0

カスタムタグを意味しますか(http://help.adobe.com/jp/en/US/ColdFusion/ 9.0 /開発/ WSc3ff6d0ea77859461172e0811cbec0b2e1-7fff.html)? –

+0

cfcomponentタグとcfscriptタグのようなcoldfusionタグはありません –

0

... ColdFusionで

あなたはフロンには、以下のオプションがあり、1)のみCFSCRIPT、2)タグのみと3)にcfscriptブロックとタグ

スクリプト

これはColdFusionの新しいバージョンで動作し、コントローラとモデルに適しています。このタイプのコードは、JavaやC#開発者とのコラボレーションにも役立ちます。

<cfscript>はコードには表示されません。 ColdFusionはこれが純粋な<cfscript>ファイルであることを断言しています。

component client="true" output="false" {  
public function getStatus(id) 
    { 
     q = queryExecute("select * FROM status where id = '#id#'", 
      null, {"datasource"="cfds"});  
     return q; 
    } 
public function getStatusByType(type) 
    { 
    // always include type 0 status as they are global 
    q = queryExecute("select * from status where type = '#type#' 
      or type = 0", null, {"datasource"="cfds"});  
      return q; 
    } 
} 

タグ これは、ColdFusionの以前のバージョンで動作し、最も一般的であるとするようなものです。 ColdFusionの以前のバージョンでは、スクリプト

<cfcomponent> 
<cffunction name="getStatus"> 
    <cfargument name="id"> 
    <cfquery name="q" datasource="cfds> 
     select * FROM status where id = '#id#' 
    </cfquery> 
    <cfreturn q> 
</cffunction> 
<cffunction name="getStatusByType"> 
    <cfargument name="id" datasource="cfds> 
    <cfquery name="q" datasource="cfds"> 
     select * from status where type = '#type#' 
     or type = 0 
    </cfquery> 
    <cfreturn q> 
</cffunction> 
</cfcomponent> 

タグではなく、すべてのタグは、スクリプトに相当していました。この理由のために、私たちは多くの場合、<cfscript>モードに出入りする必要がありました。このアプローチのこの良い部分は、必要に応じてコードを変換できることです。

<cfcomponent> 
<cffunction name="getStatus"> 
    <cfargument name="id"> 
    <cfquery name="q" datasource="cfds> 
     select * FROM status where id = '#id#' 
    </cfquery> 
    <cfreturn q> 
</cffunction> 

<cfscript> 
public function getStatusByType(type) 
    { 
    // always include type 0 status as they are global 
    q = queryExecute("select * from status where type = '#type#' 
      or type = 0", null, {"datasource"="cfds"});  
      return q; 
    } 
</cfscript> 
</cfcomponent> 
関連する問題