Элемент не определен в объекте Java типа class coldfusion.filter.FormScope - PullRequest
2 голосов
/ 05 января 2010

У меня есть поле формы, и при заполнении формы я получаю сообщение об ошибке

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

3 голосов
/ 05 января 2010

Я согласен с 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. 
3 голосов
/ 05 января 2010

Рекомендуется убедиться, что элемент существует, прежде чем работать с ним.

if (structKeyExists(Event, "Certificationline1_" & i)) {
  CertificationView.SetLine1(Event["Certificationline1_" & i]);
}
2 голосов
/ 05 января 2010

Убедитесь, что Event ["Certificationline1_" & i] и Event ["Certificationline2_" & i] действительно определены.Попробуйте cfdump и посмотрите, появляются ли они там.

Редактировать: пропущено слово cfdump.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...