Coldfusion的customtag可以有开始tag和结束tag。如果开始tag里,如果使用cfexit的话,包含在custom tag里的代码就不会被执行。下面改一个例子来说明。
Custom Tag文件(abc.cfm):
<cfparam name="attributes.codeid" default="">
<cfif attributes.codeid neq "showme">
<cfexit>
</cfif>
测试文件(test.cfm):
<cf_abc codeid="Hello">
不要显示我
</cf_abc>
<cf_abc codeid="showme">
显示我
</cf_abc>
如果运行test.cfm,你会得到“显示我”,而“不要显示我”就不会出现。我自己写了一个名为codeblock的文件来控制文件的显示,好让自己的代码的可读性增加。
文件codeblock.cfm的内容
<cfparam name="attributes.codeid" default="">
<cfparam name="attributes.currentcodeid" default="">
<cfif listfindnocase(attributes.codeid, attributes.currentcodeid) eq 0>
<cfexit>
</cfif>
使用的时候,传入不同的codeid,就会实现不同的页面。
<cfparam name="codeid" default="form">
<cf_codeblock codeid="form" currentcodeid="#codeid#">
<!--- 显示一个单表--->
</cf_codeblock>
<cf_codeblock codeid="process" currentcodeid="#codeid#">
<!---这里要处理单表的提交。--->
</cf_codeblock>
只要改变codeid的值,我们就可以按需要调用不同的代码块。看看这个是不是和cfif一样,但是满眼的cfif,有时候很烦的。