Spring Boot/Controller/ルーティング/Query String

Spring Boot/Controller/ルーティング/Query String

リクエストで来たパラメータそのものズバリでも分岐できる

このようなケース

http://localhost/hoge/piyo/fuga?unkoId=123

この設定で受ける

@RestController
@RequestMapping("/hoge/piyo")
public class HelloController {
    @RequestMapping(value="/fuga", params="unkoId=123")
    public String index() {
        return "Hello Spring Boot";
    }
}

しかし現実的に何かの数値によってメソッドを分けるようなケースはほとんどなく

このように利用されると思われる。

@RestController
@RequestMapping("/hoge/piyo")
public class HelloController {
    @RequestMapping(value="/fuga", params="save")
    public String index1() {
        return "Hello Spring Boot";
    }
    @RequestMapping(value="/fuga", params="method=delete")
    public String index2() {
        return "Hello Spring Boot";
    }
}

index1 にやっている処理は form に submit ボタンが2個あるようなパターン。 submit ボタンは押したボタンの name を送出する仕様なので、押したボタンにより動作を分けたい場合に params に submit に設定した name をもってくることで出し分けが可能になる。

index2 にやっている処理は、どのクライアントも HTTP の各メソッドを使い分けれるわけではないので、それを擬似的にパラメータに入れるということで乗り切ろうというタイプのやつである。

主にこのような用途でこの機能は使われるのだと思われる。

java/spring/spring_boot/controller/routing/query_string.txt · 最終更新: 2018-11-13 16:21 by ore