Struts 1表单的嵌套属性无法解析

时间:2018-06-28 14:35:23

标签: java jsp struts-1

我正在使用运行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>

我的问题主要围绕通过前端的struts标签评估这些表单的属性。
如果我使用EL语言-$ {GrandParentForm.parentForm.childForm.childProperty} 它将检索适当的值。

但是对于struts表单元素内部的输入标签-

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

该名称不求值,它得到一个空的parentform,childForm,然后为null childProperty。

那是为什么?

1 个答案:

答案 0 :(得分:0)

解决了这个问题,在我的struts-config.xml中,我有多个使用此表单的操作条目。最后一个条目具有作用域会话,而不是请求。更改它以请求属性成功解析后。