SpringBoot学習 - 要求を介して取得することができますどのように多くのパラメータ

層パラメータが-controller SpringBootソースパッケージの解析原則コントローラ層パラメータspringbootパッケージを解析してきたが、それは動作しません、結局のところ、あなたは常にゆっくりと分析する時間を持って、時には迅速クエリも非常に必要であるが。だから、今日は便利なクイックリファレンス後に、パッケージ注釈付きのコントローラ層をどのパラメータの意味を総括し、使用します。

@RequestParamコメント

アノテーションは主に、一例として、2つの方法で使用されています

1.パラメータ名を指定してください

    http://127.0.0.1:8080/hello?id=123
    
    @GetMapping("hello")
    public String hello(@RequestParam("id") String id){
        log.info("[{}]",id);
        return "hello";
    }
    
    id = 123
复制代码

2.パラメータ名を指定しません

    http://127.0.0.1:8080/hello?id=123&name=liuyu
    
    @GetMapping("hello")
    public String hello(@RequestParam Map<String,String> value){
        System.out.println(value);
        return "hello";
    }
    value = {id=123, name=liuyu}
复制代码

私たちは要求された値の取得値のすべてを取得したい場合は、明示的RequestParam注釈を指定し、パラメータを受け取るためにマップを使用することはできません。私たちは要求された値の全てを取得することができるように。

@PathVariableコメント

アノテーションは主に、一例として、2つの方法で使用されています

1.パラメータ名を指定してください

    http://127.0.0.1:8080/hello/liuyu/qwert
    
    @GetMapping("hello/{id}/{name}")
    public String hello(@PathVariable("id") String id,@PathVariable("name") String name){
        System.out.println(value);
        System.out.println(name);
        return "hello";
    }
    id = liuyu ,name = qwert
复制代码

2.パラメータ名を指定しません

    http://127.0.0.1:8080/hello/liuyu/qwert

    @GetMapping("hello/{id}/{name}")
    public String hello(@PathVariable Map<String,String> map){
        System.out.println(map);
        return "hello";
    }
    
    map = {id=liuyu, name=qwert}
复制代码

@MatrixVariableコメント

あなたはこの注釈を使用する場合は設定を開く必要があります

@Component
public class GlobalWebMvcConfigurer implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        UrlPathHelper urlPathHelper=new UrlPathHelper();
        urlPathHelper.setRemoveSemicolonContent(false);
        configurer.setUrlPathHelper(urlPathHelper);
    }

}
复制代码

アノテーションは主に、一例として、2つの方法で使用されています

指定されたパラメータ名

   http://127.0.0.1:8080/hello/liu;value=123
    
   @GetMapping("hello/{id}")
    public String hello(@PathVariable(name = "id") String name,@MatrixVariable(name = "value") String value){
        System.out.println(name);
        System.out.println(value);
        return "hello";
    }
    id = liu
    value = 123
复制代码

パラメータ名を指定しないでください

    http://127.0.0.1:8080/hello/liu;value=123;name=qwe

    @GetMapping("hello/{id}")
    public String hello(@PathVariable(name = "id") String name,@MatrixVariable Map<String,String> value){
        System.out.println(name);
        System.out.println(value);
        return "hello";
    }
    id = liu
    value = {value=123, name=qwe}
复制代码

@RequestBodyコメント

ポスト要求、特定のエンティティBeanにカプセル化要求

post请求体
{
	"name":"liu",
	"id":"123"
}

    @PostMapping("hello")
    public String hello(@RequestBody User user){
        System.out.println(user);
        return "hello";
    }
    
    user(id=123, name=liu)
复制代码

@RequestHeaderコメント

リクエストヘッダフィールドを取得し、そこに単一の取得の同じ2つの用途があり、すべての要求ヘッダー要求ヘッダーを取り込みます。

@CookieValueコメント

クッキー内のキーと値のペアの値を取得します。

    请求头添加 Cookie:value=liuyu
    @GetMapping("hello")
    public String hello(@CookieValue(name = "value") String user){
        System.out.println(user);
        return "hello";
    }
    user = liuyu
复制代码

@SessionAttribute注釈やメモ@RequestAttribute

どちらの注釈機能は、実際のセッションのようなビットは、1つの要求のを見ている、対応するオブジェクトを検索します。


目次に戻ります

おすすめ

転載: juejin.im/post/5d0d9379e51d455c8838e17b