2014-07-14 16 views
5

Se si dispone di codice in questo modo:ColdFusion istruzioni cfcase e referenziamento delle loro variabili?

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

E 'possibile fare riferimento a tale valore entro l'istruzione case?

voglio concatenare una lista che può gestire più casi ed essere in grado di fare riferimento in modo dinamico le variabili in questo modo:

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

non riesco a trovare nulla che dettagliate su questo per tutto il mondo che ho guardato, basta curioso se è anche possibile.

+0

Buoni esempi ... tra cui l'esempio cfscript di seguito. Ho svalutato tutti loro. –

risposta

9

Sì, è possibile eseguire istruzione case multiple in un tag cfcase:

<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

Non penso sia possibile utilizzare i tag ColdFusion. Si può fare qualcosa di simile con <cfscript>

switch (expression) { 

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

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

Disclaimer: avrei non vuole mantenere questo codice

6

Beh ... sì ... se la tua espressione <cfswitch> era #originalExpression#, il valore che ha causato l'attivazione del caso sarà ... #originalExpression#. Non c'è bisogno di essere ingannevoli al riguardo!

IE: avrete bisogno di fare qualcosa di simile:

<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>