Cfparam用于结构

时间:2017-03-28 06:29:14

标签: coldfusion

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

这里的实例是一个全局结构但是&#34; sel_isCriteriaChanged&#34;使用表单变量创建的内部。但在某种形式我没有那个变量。在这种情况下,它将是未定义的。 那么在这种情况下如何将变量设置为false作为默认值 我在CFC文件中使用此变量

2 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,你会有这样的事情:

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

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

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

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

答案 1 :(得分:0)

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

<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>

我喜欢三元运算符? :的简洁性,如果可能的话,我尽量避免使用<cfparam>。希望这会有所帮助。