我正在使用运行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。
那是为什么?
答案 0 :(得分:0)
解决了这个问题,在我的struts-config.xml中,我有多个使用此表单的操作条目。最后一个条目具有作用域会话,而不是请求。更改它以请求属性成功解析后。