0

奇妙な質問があります。

サーバーとの対話の最後にコードを実際に実行する必要があります。したがって、jsp を使用する場合は、ページのレンダリング後にそれを実行する必要があります。

実行する方法はありますか?

このポイントカットの後に試しました

@Pointcut("@annotation(org.springframework.web.bin d.annotation.RequestMapping)")

しかし、「ModelAndViewを返す」の直後に私を残します。サーバーセッションの最後を取得する必要があります。

JSPがビューをレンダリングした後、セッションを閉じることによる遅延初期化例外を回避し、Hibernateセッションを閉じる必要があるため、それを実行したいと思います。

<% HibernateManager.getSession().close() %> 

ビューとモデルを効果的に結合する

4

1 に答える 1

2

spring-mvcインターセプターを使用できます-HandlerIntercepetorafterCompletion(..)メソッドを実装します。フィルタでそれを行うこともできます。

しかし、2つの理由から、2つはありません。

  • 初期化されていないコレクションをビューに渡さないでください。サービスレイヤーで必要なものをすべて初期化すると、LazyInitializationExceptionが発生しなくなります。実際、怠惰なコレクションは避けてください
  • 怠惰なコレクションを用意し、サービスでそれらを初期化しないことにした場合でも、SpringはあなたにOpenEntityManagerInViewInterceptor(とFilter)、そしてまたOpenSessionInViewInterceptor(とFilter)あなたが必要なことを正確に実行します。
于 2012-04-20T19:45:52.637 に答える