CFdump cfcomponent cfscript

6

能否在cfcomponent内使用cfdump? 能否在cfscript内部使用cfdump?

我知道答案是否定的,那么如何在cfcomponent的cfscript中输出函数的值? 我正在使用CF8。


2
可能是重复的问题:如何在cfscript标记内执行cfdump? - Kip
4个回答

8

在cfcomponent中使用cfdump可行吗?

是的,但有些限制。如果您在CFDUMP后面跟着CFABORT,则无论组件/方法是否关闭输出,都会显示转储信息。这当然会中止所有处理。

能否在cfscript中使用cfdump?

不完全可以(除非您使用CF9),但有解决办法。

您可以结束脚本,插入转储标记,然后重新打开它,就像这样:

</cfscript><cfdump var="#myVar#"><cfscript>

在 CFLib 上还有一个 UDF,可以模仿 CFDUMP 标签。

Dump

新增:在 CF9 或更高版本中,还有 writeDump() 方法。


当然可以。但我这里没有CF9,并且正在查找CFML参考资料。我已经编辑了我的答案。 - ale

4

Coldfusion 9:

<cfscript>
    myVar = "this is a test";
    WriteDump(myVar); 
</cfscript>

Coldfusion 8及以下版本: CF 8没有cfscript版本的<cflog>标签,所以如果需要,它需要先被抽象成一个用户定义的函数。这个函数需要被组件访问。

我避免使用名称"WriteDump()",以防止此代码与CF9发生任何可能的冲突。

<!--- Abstract cfdump tag for use in cfscript --->
<cffunction name="scriptDump" output="no" hint="Abstracts cfdump for cfscript">
    <cfargument name="myVar" required="yes">
    <cfset var result = "">

    <cfsavecontent variable="result">
        <cfdump var="#arguments.myVar#">
    </cfsavecontent>

    <cfreturn result>
</cffunction>

<cfset myVar = "this is a test">

<!--- Test the scriptDump(var) function in cfscript --->
<cfscript>
    dumpOfMyVar = scriptDump(myVar);
</cfscript>

<!--- Test the scriptDump(var) function in regular HTML --->
<cfoutput>
    #scriptDump(myVar)#
</cfoutput>

1

You can only use writeDump in CF9. If you're in CF8, use this:


<code>adminapi = createObject("component","cfide.adminapi.base");</code>
<code>adminapi.dump(foo);</code>


1

在cfcomponent中使用cfdump?为什么不呢...但我认为你应该在cffunction中使用它。

在cfscript中使用cfdump?在CF9中使用WriteDump(),或者在cflib中搜索适用于CF6+的UDF。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接