リクエストマッピングアノテーション手順
@RequestMapping Annotationの機能は、特定のハンドラークラスおよび/またはハンドラーメソッドへのWeb要求をマップします。この注釈は、クラスまたはメソッドで使用でき、プロパティ値を通るリクエストパスを指定できます。コントローラークラスで使用して、Webアプリケーションのルートディレクトリと比較して、リクエスト前のパスである予備的なURL要求マッピング情報を提供します。コントローラーメソッドで使用され、詳細なURLマップを提供することを意味します。コントローラークラスに要求マッピングアノテーションがない場合、メソッドの注釈マークのURLは、Webアプリケーションのルートディレクトリに関連しています。
@RequestMappingアノテーションは、次のプロパティを提供します。
名前:マッパー名を指定するために使用されます
値:パスと同じマッピングパスを指定するために使用されます
パス:マッピングパス、同じ値を指定するために使用されます
方法:リクエストタイプを指定するために使用:Get、Post、Head、Options、Put、Patch、Delete、Trace
パラメーション:要求されたパラメーターを指定します
ヘッダー:リクエストヘッダー、ソースコードの例:requestMapping(value = "/something"、headers = "content-type = text/*")
消費者:Application/JSON、Text/HTMLなど、リクエストの送信を処理するコンテンツタイプ(コンテンツタイプ)を指定します。リクエストは、コンテンツタイプがこれらのメディアタイプのいずれかと一致する場合にのみマッピングされます。
プロデュース:リクエストによって返されたコンテンツタイプを指定します。
値属性を通るマッピングパスを指定します
コントローラークラスでリクエストマッピングアノテーションを使用します
@controller @requestmapping( "order")public class orderinfocontroller {//例1 @RequestMapping( "OrderInfo")public ModelandView orderfo1(){return new ModelandView( "Order/info"、 "message"、 "orderinfo"); }}注文コントローラークラスに注釈要求マッピング(「注文」)を追加しました。
例1の要求パスは、http:// localhost:8080/springmvcnext/order/orderinfoです
例1コントローラーの@RequestMapping( "Order")がコメントアウトされている場合、対応する要求パスはhttp:// localhost:8080/springmvcnext/orderinfoです。
コントローラーメソッドでのリクエストマッピングアノテーションを使用します
1。一般的な基本的な使用法
@controller @requestmapping( "order")public class orderinfocontroller {//例1 @RequestMapping( "OrderInfo")public ModelandView orderfo1(){return new ModelandView( "Order/info"、 "message"、 "orderinfo"); } //例2:複数のURLマッピング@RequestMapping({"info"、 "index"})//または@requestmapping(value = {"info"、 "index"})public boidandview orderfo2(){return new modelandview( "order/info"、 "、" orderfo2 "); } //例3 @RequestMapping public ModelandView orderfo3(){return new ModelAndView( "Order/info"、 "message"、 "orderinfo3"); }}requestMapping値属性のみを構成します。他の属性が表示されない場合、値は省略されます。 URLマッピング情報を入力するだけです。他の属性が指定されている場合、値属性を明確に記入する必要があります。
上記の例1のアクセスパスは、http:// localhost:8080/springmvcnext/order/orderinfoです
例2:リクエストマッピングインターフェイスの値プロパティは配列であり、すべてのアクセスパスも配列を渡すためにサポートされています例2:http:// localhost:8080/springmvcnext/order/indexまたはhttp:// localhost:8080/springmvcnext/orders/info
例3:値が空の場合、メソッドがクラスの下のデフォルトアクションであることを意味します。例3のアクセスパスは、http:// localhost:8080/springmvcnext/orderです
2。URLテンプレートマッピング
リクエストマッピングアノテーションでURI変数を宣言し、 @pathvariableアノテーションを介して実際のリクエストURLから値にアクセスします。例は次のとおりです。
@controllerpublic class orderinfocontroller {// placeholder with placeholder@requestmapping(value = "user/{userid}/order/{ordernumber}"、method = requestmethod.get)パブリックモデルアンドビューorderinfo4(@pathvariable int userid、@pathvaiable string odry string odry strin "userid:"+userid+"ordernumber:"+ordernumber); }}例10リクエストURL:http:// localhost:8080/springmvcnext/user/12/order/333このURLを介して要求が開始されると、springmvcは @pathvariableを通じてURLテンプレートの{××}の×××変数を抽出します。 URL変数は、対応するタイプに自動的に変換されます。変換できない場合、エラーが返されます。たとえば、次のURLでアクセスしてみてください:http:// localhost:8080/springmvcnext/user/xxx/order/333 parameter userid = xxxでは、エラーが発生します。
3。アリスタイルのURLパスマッピング
アリスタイルのワイルドカードのキャラクターは次のとおりです。
例:
@controllerpublic class roderinfocontroller {//例11 Placeholder @RequestMapping(value = "Order*"、method = requestmethod.get)//@requestmapping(value = "order?"、method = requestmethod.get)//@requestmapping(value = "order/**"、methodmethod.get new ModelandView( "Order/Info"、 "message"、 "orderinfo5"); }}例11リクエストURL:http:// localhost:8080/springmvcnext/order/orderdexx?ordernumber = 12 http:// localhost:8080/springmvcnext/order/orderxxxxx?ordernumber = yyyyy
@RequestMapping(value = "order?"、method = requestmethod.get)は、「…/orda?ordernumber…。」などの一致できます。 「…/注文?ordernumber…。」 @RequestMapping(value = "order/**"、method = requestmethod.get)は、「…/order/aaa?ordernumber…。」などの一致できます。 「…/注文/bbb/ccc?ordernumber…。」
さらに、RequestMappingは正規表現スタイルのURLパスマッピングもサポートしています。
メソッド属性を介して要求タイプを指定します
メソッド属性要求のタイプリクエストマッピングによって提供される述語の述語、次の例はget requestsのみを受け入れます
//例4 @RequestMapping(value = "detail"、method = requestmethod.get)// @getMapping( "detail")public modelandview info(){return new ModelandView( "Order/info"、 "message"、 "info"); }SpringMVCは、リクエストタイプごとに専用の注釈も提供します。
@getMapping
@PostMapping
@putmapping
@deletemapping
@PatchMapping
パラメーターを介してパラメーター名またはパラメーター値の制約を指定します
PARAMS属性は、リクエストパラメーターに特定のパラメーターが含まれていることを定義できます。または、次のコードに示すように、パラメーター値の制約を定義することもできます。
//例5 params資格のあるパラメーターには、注文number @RequestMapping(value = "dational2"、params = "ordernumber")public modelandview detail2(string ordernumber){return new modelandview( "order/info"、 "message"、ordernumber); } //例6 Params適格パラメーター値@RequestMapping(value = "detail3"、params = "ordernumber!= 1222")public modelandview detail3(string ordernumber){return new Modelandview( "order/info"、 "message"、ordernumber); }例5:適格な要求パラメーターには、パラメーター順序数を含める必要があります。 OrderNumberという名前のパラメーターが含まれていない場合、アクセスが拒否されます:アクセスパス:http:// localhost:8080/springmvcnext/order/detail2?ordernumber = 12
例6:適格な要求パラメーターにはパラメーターの順序付けが含まれている必要があり、パラメーター値は1222ではありません。アクセスパス:http:// localhost:8080/springmvcnext/order/detail3?ordernumber = 1222エラーが報告されています
ヘッダーを介してパラメーター名またはパラメーター値の制約を指定します
要求マッピングによって提供されるメソッド属性は、リクエストヘッダータイプを指定できます。要求データヘッダータイプが指定された値を満たしている場合にのみ、正常にアクセスできます。
// PARAMS LIMITED PARAMETER値@RequestMapping(value = "headtest"、headers = "apikey = 23131313")// @requestmapping(value = "headtest"、headers = {"accept = application/json"})public modelandview header }例7:リクエストヘッダーには、正常に戻るにはApikey:23131313を含む必要があります。直接アクセスして、エラーを返します。
ヘッダー情報の追加Apikey:2313131313アクセスが成功しました:
消費(コンテンツタイプ)を通じて要求された提出物のコンテンツタイプを指定します
//例8 Consumer @RequestMapping(value = "Consumes"、method = requestmethod.post、consumer = "application/json")public modelandview Consumers(string ordernumber){return new ModelandView( "ORDER/INFO"、 "MESSAGE"、ORDERNUMBER); }この例は、リクエストパラメータータイプをApplication/JSONに制限します。つまり、このメソッドはコンテンツタイプがアプリケーション/JSONであることのリクエストのみを処理することを意味します。
以下は、郵便配達員テストに合格します。
リクエストパラメーター形式をアプリケーション/JSONに設定します。これは通常にアクセスできます。
パラメーター形式をx-form-urlencoded、returnエラー、HTTPステータス415に設定します
プロデュース(コンテンツタイプ)を介して返されたコンテンツタイプを指定します
プロデューサー属性は、返品コンテンツタイプを設定するために使用され、次の条件を満たしています。Acceptリクエストのヘッダーに承認を含む値は、プロデューサーによって設定された値と同じか、受け入れられたリクエストが表示されないように設定されます。
//例8が制限されたリターンデータアプリケーション/json @RequestMapping(value = "produces"、method = requestmethod.get、生成= "application/json")public modelandviewは(string ordernumber){return new modelandview( "order/info"、 "message"、ordernumber); }例8は、返品コンテンツフォーマットアプリケーション/JSONを示しています。クライアントによって設定された受け入れ形式がテキスト/JSONである場合、エラーが報告されます。 HTTPステータス406
クライアントによって設定されたフォーマットがアプリケーション/JSONであるか、受け入れ値が設定されていない場合、通常は実行できます
要約します
上記は、Spring MVCレビューのリクエストマッピングリクエストマッピングアノテーションと、編集者が紹介した新しいシリーズのチュートリアルを学習します。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!