Вложенное свойство формы Struts 1 не разрешается - PullRequest
0 голосов
/ 28 июня 2018

Я работаю с устаревшей системой, которая запускает Struts 1. В настоящее время у меня есть вложенные классы форм действий, подобные следующим -

      public class GrandParentForm extends BasicActionForm {
        private ParentForm parentForm;

        public GrandParentForm ()
        {
          parentForm = new ParentForm();
        }
        //Typical getters, setters, populate, validate, reset methods
      }

    public class ParentForm extends BasicActionForm {
       private ChildForm childForm;

       public ParentForm()
        {
          childForm = new ChildForm();
        }
       //Typical getters, setters, populate, validate, reset methods
    }

    public class ChildForm extends BasicActionForm {
       private String childProperty;
       public ChildForm(){}
        //Typical getters, setters, populate, validate, reset methods

    }

Struts Config - GrandParentForm определяется здесь как ActionFormBean,

    <form-beans.....>
      <form-bean name="grandParentForm" type="test.struts.action.pedigree.GrandParentForm " />
   </form-beans>
  <action-mappings ... >
    <action path="/test/path/preparePedigree"
       validate="false"
       scope="request"
       name="grandParentForm "
       input="/main/pedigree/PedigreeList.jsp"
       type="test.struts.action.pedigree.PreparePedigree">
      <forward name="success"
           path="/main/pedigree/PedigreeInformation.jsp" />
    </action>
 </action-mappings>

Мой вопрос вращается вокруг оценки свойств этих форм с помощью меток стоек на передней части.
Если я использую язык EL - $ {GrandParentForm.parentForm.childForm.childProperty} он получит соответствующее значение.

Однако для входного тега внутри элемента формы распорок -

    <html:form .... >
      <input type="text" id="test_id" name="parentForm.childForm.childProperty"  .../>
    </html:form>

Имя не оценивается, оно получает пустую родительскую форму childForm и затем null childProperty.

Почему это?

1 Ответ

0 голосов
/ 28 июня 2018

Выяснил проблему, в моем Struts-config.xml у меня есть несколько записей действий, которые используют эту форму. Последняя запись имела сессию области вместо запроса. Как только я изменил его, чтобы запрос свойства были успешно разрешены.

...