为啥当我在 cfoutput 中调用函数时,ColdFusion 会添加空格?
Posted
技术标签:
【中文标题】为啥当我在 cfoutput 中调用函数时,ColdFusion 会添加空格?【英文标题】:Why is ColdFusion adding whitespace when I call a function in cfoutput?为什么当我在 cfoutput 中调用函数时,ColdFusion 会添加空格? 【发布时间】:2011-02-17 00:30:54 【问题描述】:如果我在 ColdFusion 中做这样的事情:
<cfoutput>foo="#foo()#"</cfoutput>
生成的 html 前面有一个空格:
foo=" BAR"
但是,如果它不是函数调用,它可以正常工作,即:
<cfset fooOut=foo() />
<cfoutput>foo="#fooOut#"</cfoutput>
给出这个输出:
foo="BAR"
这个额外的空间是从哪里来的,我能做些什么吗?
编辑澄清一下,空格不在我的foo
函数返回的值中:
<cffunction name="foo" access="public" returntype="string">
<cfreturn "BAR" />
</cffunction>
但我也发现内置函数不会发生这种情况,即:
<cfoutput>"#UCase("bar")#"</cfoutput>
打印:
"BAR"
但是,如果我将函数的输出传递给内置函数,就会发生这种情况(这部分对我来说毫无意义)。即:
<cfoutput>"#UCase(foo())#"</cfoutput>
打印:
" BAR"
【问题讨论】:
这绝对是一个 hack,并没有回答您的问题,但是您是否尝试过使用 Trim() 函数删除空格? @dbyrne: 我试过了,但是 foo() 返回的值没有空格开头,所以 trim 什么都不做,然后 trim 的结果得到一个空格添加到它,就像 foo() 的结果 【参考方案1】:确保将输出属性定义为 false。
<cfcomponent output="false">
<cffunction name="foo" access="public" returntype="string" output="false">
<cfreturn "BAR">
</cffunction>
</cfcomponent>
或者,用cfscript风格做,不会引入多余的空格。
function foo()
return "BAR";
【讨论】:
有谁知道为什么要添加空白字符?【参考方案2】:看看这是否有帮助http://www.simonwhatley.co.uk/eliminating-whitespace-in-coldfusion
【讨论】:
以上是关于为啥当我在 cfoutput 中调用函数时,ColdFusion 会添加空格?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我单击基于导航的应用程序上的后退按钮时未调用 viewdidunload 函数
为啥当我在 mysql 中调用 STORED PROCEDURE 时 pdo->lastInsertId() 返回 0?
当我在 plotly 中使用 ggplotly 函数时,为啥文本注释会丢失?
在 Winform 中,为啥当我在一个数据源上调用 PropertyChanged 时所有绑定的属性都会更新?
为啥当我在其小部件中调用 Flutter 有状态小部件时,它没有改变另一个有状态小部件的状态
当我在 ngOnInit() 中使用 router.getCurrentNavigation() 时,它会给我类型错误,但是当我在构造函数中使用它时,它工作正常,为啥?