SpringBoot パラメータ取得
・リクエストパラメータ(クエリパラメータ、POSTパラメータ)の取得
value(name):パラメータ名
required:必須フラグ(デフォルトtrue)
defaultValue:デフォルト値
// http://localhost:8080/?id=1 // value省略(変数名がパラメータと一致していれば省略可能) public String getUser(@RequestParam String id) { return id; } // value省略 public String getUser(@RequestParam("id") String id) { return id; } // value指定 public String getUser(@RequestParam(value="id") String id) { return id; } // 必須フラグ指定 public String getUser(@RequestParam(value="id", required=true) String id) { return id; } // デフォルト指定 public String getUser(@RequestParam(value="id", required=true, defaultValue="") String id) { return id; } // Optional public String getUser(@RequestParam(value="id", required=false) Optional<String> id) { return id.orElse(""); }
・URLパスパラメータの取得
value(name):URLパスパラメータ名
required:必須フラグ(デフォルトtrue)
// http://localhost:8080/1 // value省略(変数名がURLパスパラメータと一致していれば省略可能) @RequestMapping(value= {"/{id}"}, method=RequestMethod.GET) @ResponseBody public String getUser(@PathVariable String id) { return id; } // value省略 @RequestMapping(value= {"/{id}"}, method=RequestMethod.GET) @ResponseBody public String getUser(@PathVariable("id") String id) { return id; } // value指定 @RequestMapping(value= {"/{id}"}, method=RequestMethod.GET) @ResponseBody public String getUser(@PathVariable(value="id") String id) { return id; } // URLパスパラメータを必須としない場合、リクエストマッピングにURLパスパラメータを外したURLを追加する必要がある @RequestMapping(value= {"/", "/{id}"}, method=RequestMethod.GET) @ResponseBody public String getUser(@PathVariable(value="id", required=false) String id) { return id; }
・リクエストヘッダ
value(name):リクエストヘッダの項目名
required:必須フラグ(デフォルトtrue)
defaultValue:デフォルト値
// ex Mozilla/5.0~ @RequestMapping(value= {"/"}, method=RequestMethod.GET) @ResponseBody public String index(@RequestHeader("User-Agent") String userAgent) { return userAgent; }
・リクエストボディ
required:必須フラグ(デフォルトtrue)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>User Setting</title> </head> <body> <form method="post" action="/body"> <label for="name">名前:</label> <input type="text" name="name"><br> <label for="password">パスワード:</label> <input type="text" name="password"> <input type="submit" value="送信" /> </form> </body> </html>
// ex name=name&password=password @RequestMapping(value= {"/body"}, method=RequestMethod.POST) @ResponseBody public String index(@RequestBody String body) { return body; }