为什么ColdFusion在字符串之前创建空格?

vol*_*one 0 coldfusion coldfusion-10

我有一个CFC,它返回包含一部分URL的字符串。我想将其连接到站点域名的末尾,以使其成为完全合格的URL。

但是,ColdFusion在连接之前创建了一个空间。这是我的串联的外观:

http://www.mywebsite.com#APPLICATION.MyCFC.GetURL(urlid = url.id)# 
Run Code Online (Sandbox Code Playgroud)

因此,我们分为两个部分:

  1. 域部分只是http://www.mywebsite.com
  2. 从CFC返回的字符串是这样的 /products/20

但是最终输出最终像这样:

http://www.mywebsite.com /products/20
Run Code Online (Sandbox Code Playgroud)

因此,由于某种原因,它会在连接CFC的字符串之前放置一个空格。我尝试过进行Trim()CFC发票交易,但是它没有任何作用。

我还试图将CFC中的字符串放入这样的变量中<cfset myurl = #APPLICATION.MyCFC.GetURL(urlid = url.id)#。然后,我将此变量连接到域中,如下所示:http://www.mywebsite.com/#url#并且它可以正常工作而无需添加任何空格。

为什么这样做呢?我不想每次使用CFC时都将其存储在另一个局部变量中。

这是来自CFC的代码(为了保密和清晰起见,我省略了它所做的数据库工作,但本质上就是这样):

<cffunction name="GetURL" access="public" returntype="string">
  <cfargument name="urlid" required="yes">
  <cfset var result="/products/#urlid#">
  <cfreturn result>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

Hen*_*nry 5

添加output="false"到您的<cffunction><cfcomponent>如果不是UDF)可能会解决您的问题。

  • Output =“ false”防止任何从功能/组件到内容缓冲区的输出,包括由换行符产生的空格(请考虑将其包装在&lt;cfsilent&gt;标签中。例如,除非功能/组件旨在输出视图直接使用内容,应始终使用output =“ false”。有关更多详细信息,请参见https://wikidocs.adobe.com/wiki/display/coldfusionen/cffunction。 (3认同)