传递bean像另一个bean的属性(struts 1.x)

时间:2012-11-27 14:04:03

标签: forms javabeans struts-1

我有两个表单(和相应的表单bean),一个在page1.jsp上,另一个在page2.jsp上(第二个表单是通过json创建的)。 form1属于mypackage.MyActionForm1类型,而form2属于mypackage.MyActionForm2类型。在提交第一个表单时执行的操作中,我创建了一个MyActionForm2并将MyActionForm1表单设置为其属性:

MyActionForm2 secondBean = new MyActionForm2();
secondBean.setBeanProp(form1);
request.setAttribute("secondbean", secondBean);

在jsp中,我成功访问了form1

的属性
${secondbean.beanProp.prop1}

但是如何将第一个bean传递给第二个表单form2提交时执行的Action?

form2.getBeanProp().getProp1() // form2.getBeanProp() gives a NullPointerException

我不会使用会话范围。

1 个答案:

答案 0 :(得分:0)

如果你的form2.getBeanProp() bean的每个属性都没有隐藏字段,那么显然Struts将无法从空中重建这个bean。

为了能够填充prop1返回的bean的属性actionForm.getBeanProp(),您需要一个名为beanProp.prop1的隐藏字段。如果您不希望将HTML表单中的整个beanProp状态作为隐藏字段,则将此bean存储在会话中。