Spring BootでURLのパスを受け取る
Spring BootでURLのパスを受け取りたい場合は、どうすればいいのだろうか?
例えば、/hoge/123、/hoge/456というURLのパスがあった場合、123と456を受け取りたい。
調査してみると、@PathVariableを使えば取得することができます。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.stereotype.Controller; @SpringBootApplication @Controller public class HogeApplication { @GetMapping("/hoge/{path}") public String hoge(@PathVariable(name = "path") String path) { return "hoge"; } }
デフォルトでは、パラメータが必須になっているので、任意にしたい場合は、requiredパラメータをfalseにします。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.stereotype.Controller; @SpringBootApplication @Controller public class HogeApplication { @GetMapping("/hoge/{path}") public String hoge(@PathVariable(name = "path", required = false) String path) { return "hoge"; } }