我可以在同一个 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 中的工作方式)。你总是必须像现在一样在这里使用静态值。请记住这一点。
我可以在同一个 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 中的工作方式)。你总是必须像现在一样在这里使用静态值。请记住这一点。