私はSpring MVC初心者です。私はハンドラアダプタをはっきりと理解できませんでした。ハンドラアダプタとは何ですか?アダプタはいつ使用しますか?spring mvcのハンドラアダプタとは何ですか?
答えて
hereを開始し、それが役立つかどうかを確認してください。そうでない場合は、より具体的な質問をしてください。また、Springドキュメントのthis sectionでは、デフォルトのアダプタと、それらがアノテーション設定にどのように関連しているかについて説明しています。
簡単に言えば、ハンドラアダプタは、要求を呼び出すコントローラ(およびメソッド)を決定します。
HandlerMappingは、単にメソッドをURLにマップします。ほとんどの初心者はこのオブジェクトを直接使用せず、代わりにRequestMappingを使用します。マップされたメソッドの戻り値の型(一般的に)は、SpringMVCが応答をレンダリングするために使用するビューを決定します。これだろう、
@RequestMapping(value={"/", "/home"}, method=RequestMethod.GET)
public String getHome() {
return "homepage";
}
方法は、ビューの文字列名を返します。
たとえば、次のようRequestMappingは、「/」または「/ホーム」、このメソッドを呼び出すようにするには、GETリクエストのためのHandlerMappingを生成します。通常は "/WEB-INF/views/homepage.jsp"に解決されます(もちろん、あなたのViewResolverに依存します)
初心者のために必要なオブジェクトを追加することができます。メソッド(Locale、HttpServletRequestなど)。詳細は、RequestMapping javadocを参照してください。
彼はHandlerAdapterについて尋ねました。あなたはHandlerMappingについて説明しました –
HandlerMapping
はメソッドをURLにマップするため、DispatcherServlet
は特定の要求によって呼び出されるメソッドを認識します。次にDispatcherServlet
はHandlerAdapter
を使用してメソッドを呼び出します。
なぜDispatcherServletはメソッドを直接呼び出さないのですか?注釈のように、メソッドを呼び出すための多くの方法があるので
、XMLなどHandlerAdapter
デカップルDispatcherServlet
と呼び出されるアクション。
HandlerAdapterにアダプタがあり、その名前の一部はアダプタパターンから取得されます。アダプタは2つのオブジェクト間のブリッジのようなもので、HandlerAdapterはハンドラオブジェクトとディスパッチャサーブレットの間のブリッジです。
以下のHandlerAdapterソースコードから、Springのドキュメンテーションを参照してください。メソッドの1つは、ModelAndView戻り型のhandleメソッドです。すべてのHandlerAdapterは、このメソッドを実装してHttpServletRequestとHttpServletResponseをハンドラオブジェクトに委譲し、ハンドラオブジェクトはこれらのHttpServletRequest/Responseを使用してアプリケーションロジックを実行します。
public interface HandlerAdapter {
//Check if controller is supported
boolean supports(Object handler);
//handle request
ModelAndView handle(HttpServletRequest rqst,
HttpServletResponse rsp,
Object handler) throws Exception;
このアプリケーションロジックの実行によって、モデルとビューが生成されます。このビューは、ビュー名のStringまたはViewオブジェクトの形式にすることができます。モデルには、ビューのレンダリングに使用されるデータが格納されます。 HandlerAdapterはModelAndViewオブジェクトでモデルとビューをラップします。 ModelAndViewオブジェクトを処理するディスパッチャーサーブレットジョブです。
ディスパッチャー・サーブレットは、ハンドラー・オブジェクトを認識せず、アプリケーション・ロジックを直接処理することから解放されます。ハンドラオブジェクトは、モデルとビューをModelAndViewオブジェクトに変換することからも解放されました。これは、HandlerAdapterがその変換ジョブを行うためです。
- 1. Spring MVC:属性とは何ですか?
- 2. Spring MVCのHandlerInterceptorとHandlerInceptorAdaptorの違いは何ですか?
- 3. Reactorに基づくSpring MVCとは何ですか?
- 4. Spring MVCのehcacheまたはSpringキャッシュでのキャッシュのベストプラクティスは何ですか?
- 5. 注釈のSpring MVC isFormSubmission()は同等ですか? Spring MVCので
- 6. Spring MVCのすべてのポートレットクラスは何ですか?
- 7. Spring MVCリクエストマッピングハンドラメソッドの{id:。+}の意味は何ですか?
- 8. Spring MVCで使用するテンプレートエンジンは何ですか?
- 9. Spring MVCでModelクラス(model.addAttribute())を使う理由は何ですか?
- 10. Spring MVCのコントローラに値を渡すと、違いは何ですか?
- 11. Spring MVCでformBackingObjectとModelAttributeという用語は何を意味しますか?
- 12. Spring Beanのプロトタイプとは何ですか?
- 13. Spring Securityの「プリンシパル」とは何ですか?
- 14. Springのコンテキストローダーリスナーとは何ですか?
- 15. Spring DataのPersistentEntityとは何ですか?
- 16. MVCでは、ViewModelとは何ですか?
- 17. Spring FrameworkでCGLIBとは何ですか?
- 18. spring websocketでMultiServerUserRegistryとは何ですか?
- 19. MVCパターンの「モデル」とは何ですか?
- 20. ASP.NET MVCのモデルバインディングとは何ですか?
- 21. MVC 5のメンバーシッププロバイダとは何ですか?
- 22. asp.net mvcのDependencyResolverとは何ですか?
- 23. MVCの子アクションとは何ですか?
- 24. Spring MVCとASP.NET(MVC?)
- 25. Spring 3.0とSOAP - ベストプラクティスは何ですか?
- 26. Spring MVC:HttpEntityとは何ですか?
- 27. spring-securityとSpring-4.3.0-releaseの互換バージョンは何ですか?
- 28. Spring MVC 3 with Hibernate - ModelAndViewで使用する私のモデルは何ですか?
- 29. Springのconfig.propertiesとは何ですか?その用途は何ですか?
- 30. Spring MVCと "ビッグフォーム"
リンクが壊れています。 – Vishnu
@Vishnu 6年後に物事が変わると思います。 –