Lan*_*nce 7 coldfusion railo lucee
我正在将一个非常古老的应用程序(目前在CF8中运行)迁移到Lucee.但是我遇到了一个似乎是某种自定义标签的问题.
我已经尝试确保旧安装和新安装的IIS中的所有虚拟目录都相同.并确保CFIDE和Lucee Admin中的映射和自定义标记路径相同.
但是我收到了这个错误.并且无法弄清楚这cflink是如何被实例化的.
我很长时间没有使用自定义标签,但认为它们通常用下划线调用,代码应该更像是<cf_link pageid="#LinkPageID#" Init="start">如果它被称为自定义标签.
如果我去运行此应用程序的当前CF服务器,我可以发现已创建cfclass文件
在名为"tags"的目录中名为cflink.cfm的文件中,即使"tags"目录似乎没有映射,也不在管理员的"自定义标记路径"下列出.
这个应用程序是从2003年开始的,你可以想象已经发展成为意大利面条代码的不匹配,从一开始就没有人问这个标签是如何实例化的.
有遗留代码经验的人是否有任何其他想法,我应该尝试让它工作?目前只有一个生产环境,如果我能让它在Lucee上工作,它不仅是一个在10年内不存在的开发环境,而且对我来说能够继续展示Lucee是一个很好的方式一个伟大的CFML引擎
添加附加信息
Leigh曾询问init是否可能是jar引用,但是在cflink.cfm文件中我看到了这段代码:
<cfif Attributes.Init IS "start">
<cfset Request.PageID = Attributes.PageID>
<cfset Request.Page_Width = Variables.qParentInfo.Page_Width>
<cfset Request.Page_Height = Variables.qParentInfo.Page_Height>
<cfset Request.Page_TypeID = Variables.qParentInfo.Page_TypeID>
<cfset Request.AddPath = "">
<cfif IsDefined("Attributes.Anchor")>
<cfset Request.Anchor = Attributes.Anchor>
<cfelse>
<cfset Request.Anchor = "">
</cfif>
<cfset Request.IsInternalLink = false>
<cfexit method="EXITTAG">
</cfif>
Run Code Online (Sandbox Code Playgroud)
在tags\cflink.cfm中的代码中也引用了cflink
<cfif Len(Variables.qParentInfo.ParentID) GT 0>
<!--- Add the page title to the end of the path --->
<cfset Request.AddPath = ReplaceNoCase(Variables.qParentInfo.Nav_Title," ","_","ALL") & "/" & Request.AddPath>
<cflink init="working" pageid="#Variables.qParentInfo.ParentID#" popcode="#Attributes.popcode#">
<cfelse> ......</cfif>
Run Code Online (Sandbox Code Playgroud)
虽然这可能是递归,因为它是在2004年写的,我有点怀疑它
添加搜索的屏幕截图
如果其他人遇到这种情况。在 CF8 中,假设更早的版本,您可以将 cfm 文件放入目录中ColdFusion8\wwwroot\WEB-INF\cftags,在这种情况下该文件ColdFusion8\wwwroot\WEB-INF\cftags\link.cfm然后充当任何其他 cftag。
我找到了 2004 年最初构建这个应用程序的人,他告诉我,他们这样做是为了避免输入下划线,而如果他们将其作为自定义标签来完成,他们就会输入下划线。
我有点明白了,因为这个标签在应用程序中随处使用,实际上已经使用了数百次。小男孩带着母狗去找。
现在我所要做的就是弄清楚如何以类似的方式将其移动到 Lucee 世界。所以它以同样的方式实例化。
感谢@Leigh 的所有帮助,你总是很棒!
添加更多信息
WEB-INF\lucee\library\tag如果对应的Lucee目录下有文件就是WEB-INF\lucee\library\tag. 这些文件在加载时读取,然后可以用作任何其他 cf 标记。
例如,如果您有文件,WEB-INF\lucee\library\tag\link.cfm则可以通过“cflink”调用它。
看起来是个很酷的主意,但对于十年后的人来说却有点糟糕
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |