2011-08-16 9 views
1

その遅くて疲れましたが、この問題は私を狂ったように悩ましています。Struts2の検証 - 検証が失敗した場合の子どもの再作成

私はフォームを持っています。このフォームには、エンティティにマッピングされ、送信時に保持される入力フィールドがいくつかあります。 フォームの一部ではない同じページに、このエンティティの子の概要があります。

struts2-Actionには、フォームが表示される前に実行されるedit()というメソッドがあります。このメソッドは、指定されたidパラメータを受け取り、データベースから完全なエンティティ(子を含む)を取得します。 したがって、フォームは子どもの情報とうまく表示されます。

ただし、検証(serverside)にエラーがあるとき。エンティティオブジェクトはもはや子を持たない。すべての情報(フォームフィールド自体にあったものを除いて)は失われたようです。

妥当性検査が失敗した後でも私の子供が見えるようにするにはどうすればよいですか?

答えて

1

それは後半だと私はあまりにも疲れているが、私の頭の上から:

つのサービスがあると思われるので、私はおそらく、AJAXを使用することによって、問題を回避しているでしょう

は(つまりは、より小さな部分にアクションを行うことです他のものと無関係で、子供を表示することはエンティティの更新に結びつける必要はありません)。

しかし、それは多くの仕事であり、特にajaxを使用しない場合はそうです。本当に簡単なことは、Validateableを実装することです(または既にAc​​tionSupportを拡張している場合)。そして、validateメソッドを追加/オーバーライドします。検証のためにxmlを使用する場合、両方が実行されることを心配しないでください。

次に、必要なフィールドを設定するためのセットアップメソッドを作成し、validateメソッド(おそらく最初の行)の正しい場所に配置します。これは実行前に常に実行されるため、おそらくexecuteメソッドのサイズが小さくなります。

+0

パーフェクト。 DidntはValidateableについて知っていましたが、それは私が必要としていたものです。 – user829237

関連する問題