如何在cfscript标签内部进行cfdump?

时间:2009-05-19 15:52:42

标签: coldfusion railo cfml openbd

为了调试,我想将某些变量转储到我的网页上。我怎样才能在cfscript标签内做到这一点?

我尝试了以下操作,但它无法正常工作:

<cfscript>
  ...
  <cfif cgi.REMOTE_ADDR eq "IP">
    <cfdump var="#var1#"><br/>
  </cfif>
  ...
</cfscript>

关于可以做些什么的任何线索?

7 个答案:

答案 0 :(得分:42)

您不能像在CF 9之前的版本中那样直接执行。但是,您可以使用在CFLib中找到的dump() UDF。那里有一整个UDF库,它们模仿没有直接CFSCRIPT等价物的CF标签。

ColdFusion 9(及以上)提供writeDump()功能。

Adob​​e文档链接WriteDump()功能

答案 1 :(得分:31)

像使用writeOutput()

一样使用writeDump()

请参阅CF 9参考资料中的writeDump

答案 2 :(得分:5)

以下是不是更容易和直接?

oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);

它适用于CF7和前进,甚至更早。

答案 3 :(得分:3)

写自己也很容易。您只需在cfml而不是cfscript中定义一个函数。您也可以使用它来做cfaborts和cfloops。

像这样的事情(脱离我的头顶......没有被执行)。

<CFFUNCTION NAME="MyDump">
    <CFARGUMENT NAME="OBJ" Required="TRUE">
    <CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
  if(cgi.REMOTE_ADDR eq "IP"){
    MyDump(Var1);
  }
</CFSCRIPT>

答案 4 :(得分:3)

现在,在启动ColdFusion 11的cfscript中允许使用普通标签名称

<cfscript>
    cfdump (var=#myVar#);
</cfscript>

答案 5 :(得分:2)

<cffunction name="setAbort" access="private" returntype="void" output="false">
 <cfdump var="#arguments#"/><cfabort>
</cffunction>

答案 6 :(得分:-2)

对于转储我们使用Writedump(myvar);而不是在cfscript中我们使用abort;而不是退出任何实例的程序执行。我们使用writeoutput();而不是

 <cfoutput>#myvar#</cfoutput>

下面是cfscript中转储和中止的代码。

writedump(myvar); for dump

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript