我可以在同一个cfswitch案例中使用另一个cfswitch语句

时间:2016-10-31 06:50:12

标签: coldfusion coldfusion-8

我可以在同一个cfswitch案例中使用另一个cfswitch语句吗?

<CFSWITCH EXPRESSION="nameOfPg">
  <CFCASE VALUE="ClassMenu" >
    <!---do something--->
  </CFCASE>
  <CFCASE VALUE="ReportsMenu">
    <CFSWITCH EXPRESSION="#nameOfPg#">
      <CFCASE VALUE="StudentMenu">
        <!---do something--->
      </CFCASE>
      <CFCASE VALUE="DetailsMenu">
        <!---do something--->
      </CFCASE>
    </CFSWITCH>
  </CFCASE>
  <CFDEFAULTCASE>
    <!---do something--->
  </CFDEFAULTCASE>
</CFSWITCH>

1 个答案:

答案 0 :(得分:0)

是的,你可以。 EXPRESSION属性可以是动态的(例如nameOfPg之类的变量),但要注意哈希#

nameOfPg(您的顶级CFSWITCH)评估字符串,而不是变量nameOfPg的实际值。要解析属性中的变量,您需要像在内部CFSWITCH中一样使用散列##nameOfPg#

修复您的代码:

<CFSWITCH EXPRESSION="#nameOfPg#">
  <CFCASE VALUE="ClassMenu" >
    <!---do something--->

你应该好。

另一方面,CFCASE不允许使用动态值(由于交换机在Java / ColdFusion中的工作方式)。你总是必须像现在这样使用静态值。请记住这一点。