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

问题描述 投票:27回答:7

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

我尝试了以下但它不起作用:

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

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

coldfusion railo cfml openbd
7个回答
42
投票

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

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

Adobe文档Linkfor WriteDump()函数


31
投票

像writeDump()一样使用writeOutput()

参见CF 9参考文献中的writeDump


5
投票

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

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

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


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>

3
投票

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

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

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

-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
© www.soinside.com 2019 - 2024. All rights reserved.