@ RequestParam、@ PathVariableと@RequestBody 3種類の間

@RequestParamコメント

名前が示すように:取得パラメータを、すなわち、取得パラメータから送信され、例えば、リンク取得idパラメータ値を:

//链接(注意链接格式区别)
http://localhost:8090/hello?id=2
//使用@RequestParam注解获取id
public String Demo1(@RequestParam String id){ System.out.println("链接中请求参数的id:"+id); return null; } 

この時点で、@RequestParam役割がIDを取得することができますし、ダウンのid内の形のメソッド本体に引数として

@PathVariableコメント

その名の通り:パス変数を、それは、以下のリンクへのアクセスなどのリンク取得変数パス、ですid

//链接(注意比较上面一条链接)
http://localhost:8090/hello/2
//使用@PathVariable注解获取id
@RequestMapping(value = "/getBook/{id}", method = RequestMethod.GET) public String getBook(@PathVariable Integer id) { try { system.out.println("路径上的id:"+id); } catch (ParseException e) { e.printStackTrace(); } return null; } 

この時@PathVariableアクションパスIDが本体パラメータID内部来るメソッドに渡されるが、変数名は同じである必要があり、そのような場所として得ることである:value = "/getBook/{id}"@PathVariable Integer id;異なる場合にエラー二つは、IDであることです。

@RequestBodyコメント

すべてのその最初の、@RequestBody注釈プロセスは、一般的に主に使用されるcontent-type:"application/json charset=utf-8"か、content-type:"application/xml charset=utf-8"要求データの2種類は、一般に、例えば、より多くの比較非同期要求で使用されています。

//异步请求部分代码
$.ajax({
        url:"/hello",
        type:"POST",         data:'{"id":"123","name":"chenyc"}',         content-type:"application/json charset=utf-8",         success:function(data){           alert(data);         }     }); 
//@requestBody注解获取数据代码
@requestMapping("/hello")
    public String hello(@requestBody Integer id,@requestBody String name){       System.out.println("id:"+id+";"+"name:"+name);     } 

この時@requestBody要求は、対応するプロセスパラメータに割り当てられているに注釈エンティティ・クラスがある場合、また、様々なパラメータを得ることができるUser含まid及びname要素は、次いで、その方法は、直接書き込むことができ@requestBody User user、自動的に私達の使用のためのパッケージ良いですこのようないトラブルを行う@requestBody Integer id,@requestBody String 一つのパッケージで名前1

おすすめ

転載: www.cnblogs.com/chengxiaodi/p/11324611.html