0

尽管抑制空格并修剪变量,ColdFusion 9 总是在变量输出的两侧添加空格。这是我发疯的代码和输出示例;

这是自定义标签部分:

    <cfprocessingdirective suppresswhitespace="Yes">
        <cfquery name="get_something" datasource="some_dsn">
        SELECT SOMETHING FROM SOME_TABLE WHERE SOME_VALUES = PARAMETERS
        </cfquery>
        <cfoutput>#Trim(get_something.something)#</cfoutput>
    </cfprocessingdirective>

通过使用转储此值后,

<cfdump var="#get_something.something#">

我得到了db中的确切字符串。这里的刺两侧没有空格。但是当我在其他页面上使用这个标签时,如下所示;

<cf_my_tag param=someparam param2=someotherparam> 

我得到两边都有空格的字符串。

这是我使用后发生的情况:

(<cf_my_tag params>) = ( some string from db ) 

...这就是我想要的:

(some string from db) 

由于我无法在我使用它们的地方操作自定义标签(如修剪或字符串进程等),我认为我需要的是自定义标签部分。

可能是什么原因或我应该怎么做才能摆脱这些空白?会不会是 ColdFusion Server 中的一些配置问题?

谢谢你们!

4

1 回答 1

4

您的标题具有误导性,因为它与 无关trim(),这很好用。您建议此代码是罪魁祸首:

<cfoutput>#Trim(get_something.something)#</cfoutput>

但是我认为如果您将其修改为:

<cfoutput>[#Trim(get_something.something)#]</cfoutput>

您将在方括号之间看到没有意外的空白。

然后你在剩下的问题中继续说的是,正是这个发出了无关的空白:

<cf_my_tag param=someparam param2=someotherparam>

所以这个问题实际上是一个关于自定义标签发出意想不到的空白的问题,这是 - 恐怕 - 一些自定义标签的注意事项。

您可以通过将所有代码放在标签文件中的<cfsilent>标签中来部分缓解这种情况。

于 2013-06-10T07:50:42.520 回答