使用方法と役割@PathVariable注釈
結合マッピングURLプレースホルダ
新機能spring3.0:要求パス値のプレースホルダーを受け取ります
URLによって@PathVariableことができるプレースホルダパラメータにバインドされた治療パラメータの制御基準に注釈@PathVariable(「XXX」)の方法による操作に結合させることができる{XXX}プレースホルダでURL:でインチ
- @RequestMapping(値= "/インデックス/ {ID}"
-
経路リクエスト:HTTP:// localhostを:8080 /こんにちは/ユーザー/インデックス/ 1
@RequestMapping(値= "/インデックス/ {ID}"、方法= RequestMethod.GET) パブリック文字列インデックス(@PathVariable( "ID")のint ID){ System.out.println( "GETユーザー:" + ID); 戻る「成功」。 }
パラメータ制御方法に要求パラメータを結合@RequestParam
コントローラの基準方法に、要求を示す必要なパラメータ、真のデフォルトは、パラメータに対応するパラメータを含み、そうでない場合に必要があるかどうかに必要な属性を指定し、value属性は、パラメータの名前を指定し、パラメータを渡す@RequestParam注釈メソッドを要求することができます例外がスローされます。
要求パス:HTTP:// localhostの:? 8080 /こんにちは/ユーザー/ requestParam LOGINNAME = kJの= 123&loginPwd
( "/ requestParam" @RequestMapping ) パブリック文字列requestParam(@RequestParam(値= "ログイン名")文字列ログイン名、@ RequestParam(値= "loginPwd" )文字列loginPwd){ System.out.println( "ログイン名:" +ログイン名+ "loginPwd:" + loginPwd)。 戻る「成功」。 }
違い
1.用法の違い:
これは、名前からわかるように、パスを受けるためのPathVariableのみURLパラメータ、および要求バンドを受信するための唯一のRequestParam paramsは。
パッケージcom.lrm.springbootdemo.web。 輸入 org.springframework.web.bind.annotation *。; 輸入はjava.util.ArrayList; 輸入java.util.HashMapを; 輸入はjava.util.List; 輸入java.util.Map; @RestController @RequestMapping( "/ API / V1" ) パブリック クラスHelloController { (@GetMapping "/書籍/ {ユーザー名}" ) パブリックオブジェクトtestPathVariable(@PathVariable文字列名){ 地図 <文字列、オブジェクト>マップ= 新しい HashMapの<> (); map.put( "ユーザ名" 、ユーザ名)。 リターンマップ。 } (@PostMapping "/ books2" ) のパブリックオブジェクトtestRequestParam(@RequestParam( "名前" )文字列名、 @RequestParam( "作者" )文字列の作者、 @RequestParam( "ISBN" )文字列ISBN){ 地図 <文字列、オブジェクト>ブック= 新しい HashMapの<文字列、オブジェクト> (); book.put( "名前" 、名); book.put( "作者" 、作者); book.put( "ISBN" 、ISBN)。 リターン・ブック。 } @PostMapping( "/ books2 / {ID}" ) パブリックオブジェクト試験(@PathVariable( "ID")長い ID、@ RequestParam( "名前" )文字列名、 @RequestParam( "作者" )文字列の作者、 @RequestParam( "ISBN" )文字列ISBN){ 地図 <文字列、オブジェクト>ブック= 新しい HashMapの<文字列、オブジェクト> (); book.put( "ID" 、ID)。 book.put( "名前" 、名); book.put( "作者" 、作者); book.put( "ISBN" 、ISBN)。 リターン・ブック。 } }
ユーザ名パラメータはパスurlパラメータに担持されているため、ユーザ名パラメータtestPathVariableこの方法は、@PathVariableを受信するために使用することができます。ユーザー名は受け入れることRequestParamを使用することはできません。
この方法は、testRequestParam使用することができます
ローカルホスト:? 8080 / API / V1 / books2 / 12名=アクション&著者でJava = RIC&ISBN = dsdas2334は
テープのみの要求を受信するためのRequestParamをparamsはいるので、このモードを要求し、testPathVariableではありません上記名、著者、ISBNコードのパラメータを受け取ります。
2.異なる内部パラメータ
PathVariable値、名前は、3つのパラメータを必要としていた、とRequestParamは、これら3つのパラメータ、およびPathVariableよりマルチパラメータはdefaultValueを持っています
(要求は、対応する可変パラメータの本体が含まれていない場合、このパラメータが使用され、変数パラメータはデフォルト値はdefaultValueを指定しました)
3.PathVariableは、一般的に使用され、削除要求、RequestParam一般的に用いられてPOSTリクエストを取得します。