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

Can I use another cfswitch statement within the same cfswitch case

我可以在同一个 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>

是的,你可以。 EXPRESSION 属性可以是动态的(例如 nameOfPg 这样的变量),但要注意散列 #.

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

修复您的代码:

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

你应该很好。

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