2014-07-14 45 views
5

如果你有像這樣的代碼:ColdFusion的cfcase語句並引用它們的變量?

<cfcase value="Test"> 
    /**Do Stuff 
</cfcase> 

是否有可能引用case語句內的價值?

我想連接,可以處理多個案件,並能夠動態地引用,像這樣的變量列表:

<cfcase value="Test,Another,Yes,No"> 
    <cfif this.value EQ 'Test'> blabla </cfif> 
</cfcase> 

我無法找到任何東西,詳細瞭解這個到處我已經看過,只是好奇,如果它甚至是可能的。

+0

很好的例子......包括以下CFSCRIPT例子。我把所有這些都提高了。 –

回答

9

是的,你可以在cfcase標籤運行多個case語句:

<cfswitch expression="#URL.TestValue#"> 

    <cfcase value="Blue,Red,Orange" delimiters=","> 
     <cfoutput>#URL.TestValue#</cfoutput> 
    </cfcase> 

    <cfcase value="Yellow"> 
     <cfoutput>#URL.TestValue#</cfoutput> 
    </cfcase> 

</cfswitch> 
2

我不認爲有可能使用ColdFusion標籤。你可以做同樣的事情與<cfscript>

switch (expression) { 

    case "Test" : 
     // Do some extra stuff 
     // No break here 

    case "Another" : case "Yes" : case "No" : 
     // Do yet some normal stuff 
     break; 
    } 

免責聲明:我想維持這段代碼

6

那麼......是的......如果你的<cfswitch>表達式是#originalExpression#,那麼引起該事件觸發的值將是... #originalExpression#。沒有必要棘手!

IE:你需要做這樣的事情:

<cfswitch expression="#originalExpression#"> 
    <cfcase value="Test,Another,Yes,No"> 
     <!--- stuff common to all of Test,Another,Yes,No ----> 

     <!--- stuff specific to various cases ---> 
     <cfif originalExpression EQ "test"> 
      <!--- do stuff ----> 
     <cfelseif listFindNoCase("Yes,No", originalExpression)> 
      <!--- do stuff ----> 
     <cfelse> 
      <!--- do stuff for "another" ---> 
     </cfif> 
    </cfcase> 
    <!--- other cases etc ---> 
</cfswitch>