List cfargument是否可以是“类型”;列表“;?
我想有一个这样的论点:List cfargument是否可以是“类型”;列表“;?,list,coldfusion,arguments,coldfusion-8,List,Coldfusion,Arguments,Coldfusion 8,我想有一个这样的论点: <cfargument name="exclude" type="list" required="false" default="-1" hint="A list of source IDs that should be excluded" > 我在医院的文件里看不到,我真的不信任他们 是否有人知道这是可能的,或者我必须转换为数组 此时我发现一个错误: 传递给renderSelectSource函数的EXCLUDE参数不是l
<cfargument
name="exclude"
type="list"
required="false"
default="-1"
hint="A list of source IDs that should be excluded"
>
我在医院的文件里看不到,我真的不信任他们
是否有人知道这是可能的,或者我必须转换为数组
此时我发现一个错误:
传递给renderSelectSource函数的EXCLUDE参数不是list类型
它并不是在抱怨“list”不是一个有效的类型,但它可能只是一个错误消息。本例中的类型是“string”。列表只是一个字符串
您可以执行到数组的转换。。。但是,除非它给您买了我看不到的东西,否则我不认为将参数声明为字符串有什么问题。在这种情况下,我通常做的是允许使用分隔字符串(即列表)或数组。特别是,这允许您处理数组值包含分隔符(即逗号)的情况。例如:
<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>
正如charlie所说,正确的类型可能是string
。Re:错误,因为list
不是基本类型(字符串、布尔值、数字等)之一,CF将假定它是组件名称。您可能没有/List.cfc
,因此出现错误。type=“java.lang.IllegalArgumentException”?使用它有什么好处?它真的扔了那个obj吗?还是仅仅一根绳子?@Henry:优势在于语义。在指定
的类型
属性时,我尝试使用与意图一致的现有Java异常。因此,如果您查看它的javadoc:您可以看到它是如何排列的。我还没有测试它是否真的生成了这种类型的Java异常对象,但是
将正确捕获ColdFusion或Java生成的异常。