CustomTag 实际上是一种动态 header,例如可以在 header 中同时使用数据库数据(这个是 bootstrap.header 做不到的) 有以下几种使用方法:
在服务器的 CustomTag 文件夹中放置对应的自定义标签 cfm 文件
在被访问的 cfm 目录放置对应的自定义标签 cfm 文件, 这里直接访问了当前目录下面的 abc.cfm 这个自定义标签,并且没有设置参数:
<cf_abc>
实际上是自定义标签的另一种访问方法
这种方法可以指定特殊的路径
<cfmodule
name="XXX"
/>
<cfmodule
template="XXX.cfm"
/>
abc.cfm
直接写成 abc
即可。subFolderName.abc
的形式……/modules/abc.cfm
、modules/abc.cfm
template
参数不支持绝对路径在被调用的 CustomTag 中初始化参数(必须)
<cfparam name="ATTRIBUTES.message" type="string" default="this is msg">
<cfparam name="ATTRIBUTES.anothermsg" type="string" default="this is another msg">
<br>
custom tag begins
<br>
<cfoutput>
#ATTRIBUTES.message#
<br>
#ATTRIBUTES.anothermsg#
</cfoutput>
<br>
custom tag ends
<br>
注意参数前面的 Scope 为 ATTRIBUTES,这个 CFM 就将参数进行了输出
调用方法
在自定义标签的 CFM 中使用了<cfparam>
所以如果没有赋值就出输出默认值
或者使用 isDefine()函数来进行查看
<cfmodule template="CustomTags/tagtest.cfm"
message="this is test msg"
message2="this is test msg">
需要注意设置哪些属性是可选的,哪些是必须的
如果标签没有成对出现,一定要在标签末尾加上斜杠, 否则报错
实际上有两种使用 CT 的方法
<cf_tagtest>
……
</cf_tagtest>
<cf_tagtest var="xxx"/>
实际上第一种方法执行了两次
在 CT 中存在三个阶段
<cf_tagtest var="xxx">
aaa
</cf_tagtest>
……
<cfif ThisTag.ExecutionMode EQ "START">
123
<cfelse>
789
<cfset ThisTag.GeneratedContent="456">
</cfif>
可以看见 789 在 456 之前,但是输出依然为 123 456 789