3

HTML で「選択」要素として表示される ActionForm の配列オブジェクトに問題があり、ユーザーはオプションを追加および削除できます。送信時に、データベースの値を追加または削除すると、すべてが適切に機能し、すべてを選択しますすべての値がフォームの配列にマップされるように送信するときのオプションなど。

しかし、ユーザーが空の選択を送信すると、フォーム オブジェクトに変更が見られず、フォームはその配列の値が null であることを認識しませんでした。

私はストラット1.2を使用しています

4

1 に答える 1

4

何も選択されていない場合、配列はフォーム Bean がインスタンス化されたときのままになります。したがって、空の配列に初期化すると、必要なものが得られます。

私の推測では、フォーム Bean に (残念ながら) デフォルトのセッション スコープを使用していると思われます。それは悪い習慣です。リクエスト スコープのフォーム Bean を優先する必要があります。また、本当にセッション スコープのフォーム Bean を使用したい場合は、reset() メソッドをオーバーライドして、リクエスト パラメータから設定される前にプロパティをデフォルト値にリセットする必要があります。

于 2013-03-12T23:16:55.583 に答える