我有一个表单字段,填写表单时,我收到错误
"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]);
” 我没有收到错误。错误意味着什么?如何纠正? 谢谢 输精管
答案 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这个词。