0

我有两个表单(以及相应的表单 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

我不会使用会话范围。

4

1 回答 1

0

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

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

于 2012-11-27T21:02:07.180 回答