2012-02-10 120 views
2

我正在ColdFusion中编写Web服务。问题是,我不知道如何摆脱最后一个元素后的逗号。我的代码如下所示:如何在生成列表时摆脱最后的逗号?

<cfoutput query="Attachments"> 
    #url#, 
</cfoutput> 

将会产生如下输出(注意后面的逗号)

url1,url2,url3, 

如何才能摆脱后面的逗号和产生这个呢?

url1,url2,url3 

回答

8

这是一个简单的方法:

<cfoutput>#ValueList(Attachments.url)#</cfoutput> 
+0

该死,我太罗嗦了。你在几秒钟内击败了我;) – Leigh 2012-02-10 01:35:57

+1

ValueList是这种情况下的最佳方式,但在其他情况下,您可以实现计数器并在计数器等于记录计数时停止。类似 ''' '' #URL#,'' '' ' ValueList的确可以接受大范围的分隔符 – 2012-02-10 02:17:15

+1

@mrbusche你实际上并不需要设置一个计数器 - currentRow在循环中可用,所以你可以这样检查:'#url#' – 2012-02-10 02:50:01

0

Jake's answer是我们所需要的在这种特殊情况下。

对于更通用的情况下,你可以这样做:

<cfloop ...> 
    <cfset myList=listAppend(myList,value)> 
</cfloop> 

也有一个有点挂羊头卖狗肉的,因为ColdFusion的,你可以做(​​默认)忽略空列表元素:

<cfset myList=arrayToList(listToArray(myList))> 

哎呀,即使这会工作:

<cfset myList=listChangeDelims(myList , "," , ",")> 

当然,如果你不输出列表作为字符串,你不最后需要担心这个逗号,因为ColdFusion将会忽略空的元素。如果您将它作为字符串输出,这是清除逗号的另一种方法。尽管如此,它并不像其他人那样可靠。

<cfoutput>#left(trim(mylist),len(trim(mylist))-1)#</cfoutput>