我可以在同一个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>
答案 0 :(得分:0)
是的,你可以。 EXPRESSION
属性可以是动态的(例如nameOfPg
之类的变量),但要注意哈希#
。
nameOfPg
(您的顶级CFSWITCH)评估字符串,而不是变量nameOfPg
的实际值。要解析属性中的变量,您需要像在内部CFSWITCH中一样使用散列#
:#nameOfPg#
。
修复您的代码:
<CFSWITCH EXPRESSION="#nameOfPg#">
<CFCASE VALUE="ClassMenu" >
<!---do something--->
你应该好。
另一方面,CFCASE
不允许使用动态值(由于交换机在Java / ColdFusion中的工作方式)。你总是必须像现在这样使用静态值。请记住这一点。