0

私はライフレイと一緒に春のポートレットmvcを使用しています。すべての @ModelAttribute アノテーション (init メソッドのようなもの) の前にメソッドを呼び出す方法があるかどうかを知る必要があります。オブジェクトからプロパティのサブセットを抽出するために、すべての @ModelAttribute メソッドで db から取得したオブジェクトを使用しているため、これが必要です。リクエストパラメータを使用して、データベース内の行の pk-id を送信しています。上記の注釈で注釈が付けられたすべてのメソッドで、オブジェクトをもう一度取得したくありません (同じオブジェクトを取得するために db に複数の接続を行っているため、レンダリングが遅くなります。レンダリング/アクション要求の前に呼び出す必要がある init のようなメソッド)。@PostConstruct を試してみましたが、例外がスローされます。明らかにこれは解決策ではありません。私はしません

ありがとう!

4

1 に答える 1

0

編集:

@(Action/Request) マッピングの前にメソッドを呼び出す必要がある場合は、Spring MVC フレームワークのInterceptorを使用できます。

このリンクは役に立つかもしれません。


あなたの質問には直接答えませんが、DB からオブジェクトを取得するサービスを作成し、このサービスをポートレットに挿入することをお勧めします。

@Autowired ServiceDao serviceDao

このようにして、データベース アクセス レイヤーをビュー レイヤーと分離します (コントローラーは DB に直接クエリを実行するべきではありません)。

次に、問題を解決するために、いくつかのコードを投稿できますか? それぞれが@ModelAttributeBD から何らかのオブジェクトを必要とする場合は、たとえば、一度取得してサービスにキャッシュすることができます。

Spring Portlet MVC アノテーションに関する有用なリソース。

于 2013-01-24T21:44:05.043 に答える