0

2つのフォーム(および対応するフォームBean)があります。1つはpage1.jspにあり、もう1つはpage2.jspにあります(この2番目のフォームはjsonを介して動的に作成されます)。form1はmypackage.MyActionForm1タイプで、form2はmypackage.MyActionForm2タイプです。最初のフォームが送信されたときに実行されるアクションで、フォームを作成し、そのプロパティとしてMyActionForm2設定します。MyActionForm1

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

form1jspで、次のプロパティにアクセスすることに成功しました。

${secondbean.beanProp.prop1}

form2しかし、2番目のフォームが送信されたときに実行されるアクションに最初のBeanを渡すにはどうすればよいでしょうか。

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

セッションスコープは使用しません。

4

1 に答える 1

0

Beanのすべてのプロパティに隠しフィールドがない場合form2.getBeanProp()、明らかに Struts はこの Bean を何もないところから再構築することはできません。

prop1によって返される Beanのプロパティを入力できるようにするにはactionForm.getBeanProp()、 という名前の非表示フィールドが必要ですbeanProp.prop1beanPropHTML フォームの全体の状態を非表示フィールドとして保持したくない場合は、この Bean をセッションに保存します。

于 2012-11-27T21:02:07.180 に答える