Я работаю с устаревшей системой, которая запускает 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.
Почему это?