关于在 udfs 或 cfc 方法上使用自定义标签的一个考虑因素是,当您发现需要向子例程传递一组子项时,可以使用嵌套自定义标签将子自定义标签及其元素关联到父自定义标签. 这使您可以编写易于阅读的非常干净的编码:
<cfmenubar ... >
<cfloop array="menuitems" ...>
<cfmenubaritem url="#i.url#">
#i.label#
</cfmenubaritem>
</cfloop>
</cfmenubar>
是的,是的,我知道我们有更好的 dhtml 内容,例如菜单和选项卡,这只是为了指出一个示例。您可以在自定义标签中使用 cfassociate 将属性“传递”给父自定义标签,然后在 executionmode="end" 中访问关联属性数组中所有动态生成的子项。在此示例中,您将在此处循环并将菜单输出到屏幕。
另外,正如另一位评论的那样,允许你做一些聪明的事情......我特别使用的一件事是我设置了 prefix="" 然后我基本上可以强制简单的 html 标签(如 <a> 标签)被踢在运行时通过自定义标签处理程序 - 因此 html 标签在运行时变得智能......我这样做是为了分析 href 和目标属性并决定是否要显示 pdf 图标(或其他 mime 类型图标)下一个到链接......它很漂亮!这在内容管理系统中特别有用,或者当 7 有 html 开发人员使用 Dreamweaver 或做出贡献时,您希望他们的标签触发智能冷融合标签,而不需要他们在标准 html 之外做任何事情 - 编辑器不知道任何区别,他们不需要进入“代码”视图以创建一些相当强大的功能。
最后,在自定义标签中,您可以选择抑制输出(或使用缓存),因此这对于环绕动态生成的 html 块非常有用...在执行模式 EQ“结束”模式下访问 thistag.generatedcontent 变量
不要把婴儿和洗澡水一起扔在这个上面……我同意它们的使用频率要低得多,因为我们有 cfcs,但是自定义标签中仍然有一些强大的功能……我通常在每个应用程序中都有一个或 2 个(和至少几十个 cfcs)
乔恩