ColdFusion CFC默认继承规则及空extends属性含义疑问
问题1:未指定extends属性的CFC默认继承对象
没有指定extends属性的CFC默认继承ColdFusion内置的根组件类coldfusion.runtime.CFComponent。该类是所有CF组件的原生基类,内置了所有CFC通用的基础方法,比如getMetaData()、toString()、getComponentMetaData()等,正常开发过程中不需要主动声明,CF运行时会隐式完成继承绑定。
问题2:extends属性设为空值的含义
extends属性设为空值属于非法的属性赋值。ColdFusion的component标签规则要求,只要显式声明了extends属性,就必须传入一个合法的、可被CF定位到的CFC路径作为属性值。
当你留空extends属性时,CF会尝试查找名称为空的组件,自然找不到对应的文件/定义,就会抛出你遇到的「Invalid component or interface name」错误。该错误指向的是你extends属性引用的空组件不存在,而非你当前编写的CFC本身不存在,这也是错误信息看起来有误导性的原因。
如果不需要继承自定义组件,直接删除extends属性即可,无需留空,即可避免该类报错。
内容的提问来源于stack exchange,提问作者user2482479
相关产品推荐
相关产品推荐

