コントローラの1実装
SpringMVC、多くがある配置のコントローラ。
コントローラは、org.springframework.web.servlet.mvcパッケージで、唯一1つのインターフェース方式のインターフェースです。
私たちは、私たちの見解を解決し、処理するために、ビューリゾルバのModelAndViewモデルパラメータを必要としています。
springMVC-servlet.xml設定ファイルを追加する必要があります。
マッパーハンドル
<! - 処理マッパ- > < 豆のクラス= "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
処理アダプタ
<! - 処理アダプタ- > < 豆のクラス= "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
ビューリゾルバ
< ビーンID = "InternalResourceViewResolver" クラス= "org.springframework.web.servlet.view.InternalResourceViewResolver" > < プロパティ名= "接頭辞" 値= "/ WEB-INF / JSP /" /> < プロパティ名= "接尾辞" 値= "JSP" /> </ 豆>
ライトコントローラ
パブリック クラスhelloController { 公共のModelAndViewハロー(){ のModelAndViewのMV = 新規のModelAndView()。 mv.addObject( "MSG"、 "こんにちは、springmvc" ); mv.setViewName( "こんにちは" ); 返すMVを。 } }
注釈の実装により2
我々はspringmvc-servlet.xml設定ファイルを追加する必要があります。
メモスキャン
春はあなたのコントローラを見つけるために、春を確保するために、すべてのコントローラクラスのアノテーションベースのアプリケーションを見つけるために、走査機構を使用することができ、設定ファイルのスキャンにコンポーネントを宣言します。
<! - スキャン指定された注釈パケット、指定されたクラスはIOCコンテナを管理できるように- > < コンテキスト:スキャンコンポーネントベース・パッケージ=「org.west.controller」/>
静的リソースフィルタ
<! - 静的リソースフィルタ- > < MVC:デフォルト・サーブレット・ハンドラ/>
注釈駆動型のサポート
<! - 注釈駆動型:注釈駆動型MVCのサポート- > < MVC:アノテーション・ドリブン/>
ビューリゾルバ
< ビーンID = "InternalResourceViewResolver" クラス= "org.springframework.web.servlet.view.InternalResourceViewResolver" > < プロパティ名= "接頭辞" 値= "/ WEB-INF / JSP /" /> < プロパティ名= "接尾辞" 値= "JSP" /> </ 豆>
我々は(モデル、ビュー、コントローラ)の設定が不可欠である処理の三つの層を介してコントローラを実現する必要があります。
ライトコントローラ
@Controller パブリック クラスHelloWorldController { // 请求映射( "路径") @RequestMapping( "/ハロー" ) パブリック文字列HI(モデルモデル){ model.addAttribute( "MSG"、 "こんにちは、SpringMVC" )。 System.out.println( "HELLO进入" ); 返す「こんにちは」; // WEB-INF / JSP / Hello.jspの } }
クラス宣言春のノートコントローラ同様のインスタンスは、コントローラです。
異なる要求ビューを指すことができ、しかし、結果は、結果の同じページではなく、図は、多重化され、コントローラとビュー間の弱い結合の関係。
3.Restfulスタイル
安らかは、ソフトウェアアーキテクチャのスタイル、デザイン、というよりも標準ですが、設計原理と制約のセットを提供します。これは主に、クライアントとサーバの対話クラスのソフトウェアのために使用されています。ソフトウェアのこのスタイルに基づいて、より簡潔より構造化とキャッシングメカニズムを実装しやすくすることができます。
私の理解という点で人気が要求したとして、それは伝統的なようにRESTfulなスタイルで質量の参加を必要としない「?」質量参加し、我々はそれに「/」が必要です。
伝統的な方法します。https://........add P1 = 1&P2 = 2?
安らかなスタイルします。https://........add/p1/p2
そして、それを見るために、コントローラを書きます!
ライトコントローラ
@Controller パブリック クラスHelloWorldController { // 请求映射( "路径") @RequestMapping( "/ハロー/ {P1} / {P2}" ) パブリック文字列HI(@PathVariable INT P1、@ PathVariable INT P2、モデルモデル){ int型合計= P1 + P2。 model.addAttribute( "MSG" 、合計)。 返す「こんにちは」; // WEB-INF / JSP / Hello.jspの } }
注意:私たちは、コメントPathVariable私たちの価値マップのアップが必要になります。
私たちは、対応の透過型を渡したい、またはそれは、対応する要求メソッドを訪れないかもしれません。
変数パスを使用することの利点は:パスがより簡潔になり、より便利なパラメータを取得するために、フレームワークは自動的に変換を入力します。アクセスパスタイプの可変パラメータ、そうでない場合は、同じタイプを制限することができ、それは、対応するアクセス要求方式よりも少ないです。