Spring Bootでの動的なパラメーターの実現方法は何ですか?
Spring Bootでは、動的パラメータを実現するために@RequestParamアノテーションを使用できます。
@RequestParamアノテーションは、リクエストパラメータをメソッドのパラメータにバインドするために使用されます。パラメータの名前、必須かどうか、デフォルト値などを設定することができます。
こちらは例です。
@GetMapping("/hello")
public String hello(@RequestParam("name") String name) {
return "Hello " + name;
}
上記の例では、nameパラメータは必須です。このパラメータがリクエストに含まれていない場合、例外が発生します。required属性をfalseに設定することで、パラメータを必須ではないものに設定することができます。
例えば:
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", required = false) String name) {
if (name != null) {
return "Hello " + name;
} else {
return "Hello";
}
}
基本タイプ以外に、@RequestParam注釈はリクエストパラメータをカスタムオブジェクトにバインドすることもサポートしています。
例えば:
public class User {
private String name;
private int age;
// getters and setters
}
@GetMapping("/hello")
public String hello(@RequestParam("name") String name, @RequestParam("age") int age) {
User user = new User();
user.setName(name);
user.setAge(age);
// do something with the user object
return "Hello " + name;
}
上記の例では、リクエストパラメーターのnameとageは、Userオブジェクトの対応する属性にバインドされます。