2012-02-06 23 views
1

私はapplication.cfmでcoldfusionサイトを持っています。application.cfmに複数のcfapplicationsを持たせることはできますか?

<cfapplication name = "QSvalues" 
sessionTimeout = "#CreateTimeSpan(0,0, 0, 60)#" 
sessionManagement = "yes"> 


<cflock scope = "Session" 
timeout = "30" type = "Exclusive"> 
<cfif NOT IsDefined("session.prop_st")> 
    <cfset session.prop_st = ""> 
</cfif> 
<cfif NOT IsDefined("session.prop_zip")> 
    <cfset session.prop_zip = ""> 
</cfif> 
<cfif NOT IsDefined("session.address")> 
    <cfset session.address = ""> 
</cfif> 
<cfif NOT IsDefined("session.email")> 
    <cfset session.email = ""> 
</cfif> 
<cfif NOT IsDefined("session.fname")> 
    <cfset session.fname = ""> 
</cfif> 
<cfif NOT IsDefined("session.lname")> 
    <cfset session.lname = ""> 
</cfif> 
<cfif NOT IsDefined("session.pri_phone_1")> 
    <cfset session.pri_phone_1 = ""> 
</cfif> 
<cfif NOT IsDefined("session.pri_phone_2")> 
    <cfset session.pri_phone_2 = ""> 
</cfif> 
<cfif NOT IsDefined("session.pri_phone_3")> 
    <cfset session.pri_phone_3 = ""> 
</cfif> 
</cflock> 

<cflock scope = "Application" timeout = "30" type = "Exclusive"> 
<cfif NOT IsDefined("application.number")> 
    <cfset application.number = 0> 
</cfif> 
</cflock> 

私の質問は、であるあなたがメインのApplication.cfmに二つの別々のcfapplicationを定義することができます。私はこのようになります別のcfapplicationを追加したい

<cfapplication name="FhaApp" clientmanagement="no" 
      sessionmanagement="yes" sessiontimeout="#createTimeSpan(0,0,360,0)#"> 

<cflock timeout="120" name="#session.sessionID#" type="exclusive"> 
<cfcookie name="CFID" value="#session.CFID#" > 
<cfcookie name="CFTOKEN" value="#session.cftoken#" > 
</cflock> 
<cfparam name="session.fromwhere" default=""> 
<cfif #cgi.SCRIPT_NAME# contains 'default-partner-'> 
    <cfif not ISDEFINED("cookie.fromwhere")> 
<cfcookie name="fromwhere" value="#right(cgi.SCRIPT_NAME,   (len(cgi.SCRIPT_NAME)-1))#" expires="30"> 
    <cfset session.fromwhere = #right(cgi.SCRIPT_NAME,(len(cgi.SCRIPT_NAME)-1))#> 
    </cfif> 
</cfif> 

<cfset datasourcename="fha47"> 

<cfparam name="application.dsn" default="fha47"> 

<cfparam name="session.loggedin" default="false"> 
<cfparam name="session.ppcid" default="101"> 
<cfparam name="session.cid" default="FHA"> 

:それはそれで定義されているのcfapplicationを持っていますか?

+0

いいえ、おそらく構文エラーは発生しませんが、最後のものが勝つでしょう。あなたは何を達成しようとしていますか? – Leigh

答えて

3

なぜ、2番目のcfapplicationが必要なのか、それとも必要なのかよく分かりません。それはあなたのコードや説明からはっきりとは分かりません。私はあなたがおそらくそこに別のものを置くことができると思いますが、前のものを上書きする可能性があります。

さらに、あなたのコードでは、アプリケーションスコープに書いています。これは実際に別のcfapplicationを宣言していません。

<cfparam name="session.prop_st" default=""> 

が存在しない場合はその方法、それが作成されます。

ヒントのカップルは、しかし...セッション値のためのあなたの大きなのcfifエリアは、ちょうどCFPARAMを使用しています。

また、最新のColdFusionを使用している場合は、セッションスコープをcflockする必要はありません。あなたはアプリケーションのスコープの設定をロックする必要がありますが、Application.cfmで設定しているので、ちょっとばかげています。リクエストスコープのような別のスコープを使用します。

cfif cgi.script_nameでは、その変数の前後に#記号は必要ありません。あなたが必要とするのは、cfoutputで引用されているとき(または動的変数を作成するためにEvaluate()とともに使用されるとき)だけです。

こちらがお役に立てば幸いです。

+1

この回答が解決策として選択されたことに興味がありましたが、投稿された特定の質問に対処することさえしようとしませんでした。 –

+0

Rob、各タグは実際に新しいアプリケーションを開始します。両方のアプリケーションスコープが存在しますが、特定の要求の現在の名前のアプリケーションにのみアクセスできます。しかし、最初のアプリケーションに戻ると、それはまだそこにあるでしょう。結論は、私はこれがOPが望む方法ではないと思う。 –

1

これは技術的に可能です。その結果、最初のタグ呼び出しに関連付けられたアプリケーション、クライアント、およびセッションスコープは、2回目のタグ呼び出しまでしか使用できなくなります。その時点で、これらのスコープへの以降の参照はすべて、後者のタグで定義されたコンテキストを参照します。しかし、これを行うことは素晴らしい考えです。

0

ルートApplication.cfcを拡張するサブフォルダにApplication.cfcを作成するには、Sean Corfieldのアプローチを使用します。

https://stackoverflow.com/a/307441/11047

あなたのルートにApplication.cfcが必要な主要アプリケーションとセッション変数のすべてが含まれます。サブディレクトリのApplication.cfcには、 "QSvalues"アプリケーションのすべてのアプリケーション変数とセッション変数が含まれます。ただし、これらの変数はapplication.qsValuesとsession.qsValuesにあります。

application.qsValues.number、application.numberではありません。 session.psValues.prop_st、not session.prop_st。

これを行うと、必要な数のサブアプリケーションを作成できますが、それらはすべて1つのAPPLICATION.NAME内に存在します。

+0

OPが.cfmについて質問していることに注意してください.cfc –

+0

これは本当です。しかし、それは、Application.cfcに変換することは可能ですか?そうであれば、答えは適切です。 –

+0

私は実際にあなたがApplication.cfc内で複数のアプリケーション参照を持つことができると疑う - 'cfapplication'が実際にそこで使われていないので、アプリケーションプールはコンポーネントの呼び出しによって確立され、' this'スコープで設定されます: 'this.name =" FooApp "対'

関連する問題