2014-07-14 2 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의 예를 포함 : 당신이 그런 짓을해야합니다. 나는 그들 모두를 upvoted. –

답변

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>