Coldfusion 结构的Cfparam

Coldfusion 结构的Cfparam,coldfusion,Coldfusion,这里的实例是一个全局结构,但内部的“sel_isCriteriaChanged”是使用form变量创建的。但在某种形式下,我没有那个变量。在这种情况下,它将是未定义的。 因此,在这种情况下,如何将变量设置为false作为默认值。 我在CFC文件中使用了这个变量如果我正确理解了这个问题,您会遇到这样的问题: <cfparam name="instance.params.sel_isCriteriaChanged" default="false"> 但是cfparam在这里被覆盖

这里的实例是一个全局结构,但内部的“sel_isCriteriaChanged”是使用form变量创建的。但在某种形式下,我没有那个变量。在这种情况下,它将是未定义的。 因此,在这种情况下,如何将变量设置为false作为默认值。

我在CFC文件中使用了这个变量

如果我正确理解了这个问题,您会遇到这样的问题:

 <cfparam name="instance.params.sel_isCriteriaChanged" default="false">

但是cfparam在这里被覆盖了。只需确保始终定义表单值:

<cfparam name="instance.params.sel_isCriteriaChanged" default="false">

<cfset instance.params = {}>
<cfloop collection="#FORM#" item="key">
    <cfset instance.params[key] = FORM[key]>
</cfloop>

如果我正确理解您的问题,您可以执行以下操作:

<cfparam name="FORM.sel_isCriteriaChanged" default="false">

这是以下的简写:

<cfset instance.params.sel_isCriteriaChanged = structKeyExists(form, "sel_isCriteriaChanged") ? form.sel_isCriteriaChanged : false />


我喜欢三元运算符
的简洁性:
。希望这能有所帮助。

您提供的代码示例如何不适用于您?请提供您收到的任何错误消息。
<cfif structKeyExists(form, "sel_isCriteriaChanged")>
    <cfset instance.params.sel_isCriteriaChanged = form.sel_isCriteriaChanged />
<cfelse>
     <cfset instance.params.sel_isCriteriaChanged = false />
</cfif>