在类coldfusion.filter.FormScope类型的Java对象中未定义元素

时间:2010-01-05 15:33:45

标签: javascript html coldfusion

我有一个表单字段,填写表单时,我收到错误

"Element  is undefined in a Java object of type class coldfusion.filter.FormScope".

它指向以下代码: -

if(arguments.action eq 'addProficency')
            {
//
//

            CertificationArray = ArrayNew(1);

                //add the Certificationes
                for(i = 0; i lte Event["Certificationes"]; i = i + 1)
                {
                    CertificationView = CreateObject("Component","com.idl.app.cmn.cfobj.Certification.CertificationView");

                    CertificationView.SetLine1(Event["Certificationline1_" & i]);

    CertificationView.SetLine2(Event["Certificationline2_" & i]);
                    CertificationView.SetCity(Event["Certificationcity_" & i]);
                    CertificationView.SetState(Event["Certificationstate_" & i]);
                    CertificationView.SetZip(Event["Certificationzip_" & i]);

                    isRequired = false;

                    if(form.Required eq i)
                    {
                        isRequired = true;
                    }

                    ArrayAppend(CertificationArray,CertificationView);
                }
}

当我发表评论时“

CreateObject("Component","com.idl.app.cmn.cfobj.Certification.CertificationView");

                        CertificationView.SetLine1(Event["Certificationline1_" & i]);

        CertificationView.SetLine2(Event["Certificationline2_" & i]);

” 我没有收到错误。错误意味着什么?如何纠正? 谢谢 输精管

3 个答案:

答案 0 :(得分:3)

我同意dhorn。执行cfdump以查看定义了哪些字段。 更新:我注意到您的for循环从零(0)开始,而不是一(1)。通常,动态表单字段计数器从一(1)开始。在你的情况下,0 真的是正确的起始值吗?如果是这样,您如何表示零事件认证?

  

错误是什么意思

这只表示您引用了一个不存在的表单字段,或者您使用的字段名称无效。使用数组表示法时,错误消息与使用标准点表示法时略有不同。

<!--- result 1 --->
<cfset foo = form.FakeFieldNameThatDoesNotReallyExist />
Element FAKEFIELDNAMETHATDOESNOTREALLYEXIST is undefined in FORM. 

<!--- result 2 --->
<cfset foo = form["FakeFieldNameThatDoesNotReallyExist"] />
Element FakeFieldNameThatDoesNotReallyExist is undefined in a Java object of type class coldfusion.filter.FormScope. 

答案 1 :(得分:3)

在使用元素之前确保元素存在是一种好习惯。

if (structKeyExists(Event, "Certificationline1_" & i)) {
  CertificationView.SetLine1(Event["Certificationline1_" & i]);
}

答案 2 :(得分:2)

确保事件[“Certificationline1_”&amp; i]和事件[“Certificationline2_”&amp; i]实际上是定义的。试试cfdump,看看它们是否出现在那里。

编辑:错过了cfdump这个词。