cfargument可以是“list”类型吗?

时间:2011-06-08 16:48:36

标签: list coldfusion arguments coldfusion-8

我想要这样的论点:

<cfargument 
  name="exclude" 
  type="list" 
  required="false" 
  default="-1" 
  hint="A list of source IDs that should be excluded"
>

我没有在http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_a-b_6.html的文档中看到它,我真的不相信它们。

有没有人知道这是否可行,还是我必须转换为数组?

目前我收到错误:

  

传递给renderSelectSource函数的EXCLUDE参数不是类型列表。

并不抱怨“list”不是有效类型,但可能只是一个错误的错误消息。

2 个答案:

答案 0 :(得分:12)

这种情况下的类型是“string”。列表只是一个字符串。

你可以转换为数组...但是除非你买了一些我没看到的东西,否则我只看到将参数声明为字符串的问题。

答案 1 :(得分:1)

在这种情况下我通常做的是允许分隔字符串(即列表)或数组。特别是,这可以让您处理数组值包含分隔符(即逗号)的情况。例如:

<cffunction name="myFunction" output="false" access="public" returntype="any" hint="">
    <cfargument name="multiValuedArg" type="any" required="true"/>
    <cfif isSimpleValue(arguments.multiValuedArg)>
        <cfset arguments.multiValuedArg = listToArray(arguments.multiValuedArg)>
    <cfelseif NOT isArray(arguments.multiValuedArg)>
        <cfthrow type="java.lang.IllegalArgumentException"
            message="'multiValuedArg' argument must be an array or comma delimited list">
    </cfif>
</cffunction>