在Session中杀死Missing表单变量,并重新定义它

时间:2009-09-23 16:09:50

标签: coldfusion

我的表单中的Form变量正在通过Session传递/检索。

我有一个麻烦的Form变量(formField1)在Session中没有正确定义,但是整个表单都已投入使用。然后填充并使用此特定的Form变量(formField1),将其捕获在Session中并抛出错误。我给出了一个停止间隙解决方案:

 <cfif isDefined("TTsession.filing.formField1")>
       <cfset TTD formField1 = TTsession.filing.formField1>
     <cfelse>
       <cfset TTD formField1 = "0">
     </cfif>
  

TTsession =会话变量的名称
  formField1 =错误表单字段的名称。

因此,TTsession.filing.formField1未正确定义的所有表单都输出0

我不想要这个。我想做的是:

  1. 检查会话中的表单变量EXIST吗?
  2. 如果是,
    <cfset FormVar1=session.FormVar1>
  3. 如果不是,
    1. 在该会话中杀死MISSING表单变量。
    2. 在该会话中重新定义表单变量FormVar1。     
      <cfset FormVar1=session.FormVar1>

我正在使用CFMX6.1。

1 个答案:

答案 0 :(得分:4)

<cfparam name="FormVar1" default="0">

<!--- set overide defaults if in the session --->
<cfif StructKeyExists( TTsession.filing, "formField1")>
   <cfset FormVar1 = TTsession.filing.formField1>
</cfif>

我认为问题可能是您创建此会话的位置,但是如果您只想设置默认值,请使用cfparam:

 <cfparam name="session.filling.formfield1" type="numeric" default="0">

因此,如果定义了会话var,则不执行任何操作。否则用零值定义它。全部在一行。