ColdFusion cfcase语句并引用它们的变量?

时间:2014-07-14 01:33:23

标签: coldfusion coldfusion-9 coldfusion-10 coldfusion-8

如果你有这样的代码:

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

是否可以在案例陈述中引用该值?

我希望连接一个可以处理多个案例的列表,并且能够像这样动态引用变量:

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

在我看过的所有地方,我找不到任何详细的信息,只是好奇它是否可能。

3 个答案:

答案 0 :(得分:9)

是的,您可以在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>

答案 1 :(得分: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>

答案 2 :(得分: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;
    }

免责声明:我想要维护此代码