DWR3とSpring3を統合するWebアプリケーションがあります。すべてのリクエストはSpringのDispatcherServletによって処理されます。すべてが機能します。AJAXリクエストをリクエストすると、@RemoteProxyで注釈が付けられたバッキングDWRサービスBeanによって正しく処理されます。応答を返すために、私のDWRサービスBeanは、@DataTransferObjectPOJOを含むHTML文字列またはプレーンPOJOのいずれかを返します。
私がやりたいのは、DWRサービスBeanで、処理をSpring@ControllerBeanに転送することです。AJAXリクエストは引き続きDWRサービスによって処理されますが、実際の処理はSpringコントローラーBeanに委任されます。つまり、DWRサービスBeanは、実際のサービスに対する単なるサービスファサードです。このように、私はロジックを複製していません。
これは可能ですか?
さらに明確にしましょう。
通常の非AJAXアプリケーションでは、ユーザーがフォームを送信すると、次のようになります。
- DispatcherServletに転送されます
- 次に、@Controller注釈付きBeanに移動します。
- その後、処理は@ServiceBeanによって処理されます。
- その後、コントローラーはModelAndViewを返します。
DWR-AJAXアプリケーションでは、ユーザーがフォームを送信すると、次のようになります。
- それはまだDispatcherServletに転送されます
- 次に、@RemoteProxy注釈付きBeanに移動します。処理はこのBeanによって処理されます。それがDWRのサービスBeanです。
- その後、このリモートプロキシBeanは@DataTransferObjectPOJOまたは単なるHTML文字列を返します
基本的に、AJAXアプリケーションの場合、ステップ2の後で、@ Controller Beanに転送して、すべてがSpringによって処理されるようにします。