url 자체에서 값을 같이 보내는 경우, 이렇게 사용할 수 있다.
특정 게시판은 이런 식으로 사용하는 경우도 보았다.
@GetMapping("/main/{para}")
public String findByName(@PathVariable("para") String para ) {
return "parameter: " + para;
}
@GetMapping("/request")
public String rp(String id, int pass) {
return String.format("name=%s, age=%d", id, pass);
}
필수로 있어야 하면 required=true, 없이 와도 되는 경우에은 required=false
@GetMapping("/request")
public String rp(@RequestParam(required=false) String id, @RequestParam(required=false) int pass) {
return String.format("name=%s, age=%d", id, pass);
}
입력없이 오는 경우에는 세팅한 값으로 받아 온다.
@GetMapping("/request")
public String rp(@RequestParam(required=false) String id, @RequestParam(defaultValue="100") int pass) {
return String.format("name=%s, age=%d", id, pass);
}
헤더 정보를 같이 받아 올 수 있다.
@GetMapping("/request")
public Map<String, Object> rh(@RequestHeader Map<String, Object> requestHeader) {
return requestHeader;
}
기본적으로 host,user-agent,cookie,accept 등을 받아올 수 있다.
쿠키값은 다음과 같은 형식으로 읽어 올 수 있다.
@GetMapping("/request")
public String ck(@CookieValue(value = "cookieName", required = false) Cookie coookie) {
if(cookie != null) {
String cookieValue = cookie.getValue();
}
return "hello";
}
자바스크립트로 해당 url을 접근하여 데이터를 받으려고 할 때가 있다.
그 데이터를 Controller에서 제어하고자 하면, 다음과 같이 설정해서 출력해주면 된다.
@GetMapping("/{userid}")
@ResponseBody
public String idCheck(@PathVariable("userid") String userId) throws Exception {
logger.debug("idCheck userid : {}", userId);
int cnt = memberService.idCheck(userId);
return cnt + "";
}
RedirectAttributes redirectAttributes// 이건 매개변수로 설정
redirectAttributes.addAttribute("pgno", map.get("pgno"));
redirect 하면서, 값을 보낼 수 있다.
(전에는 값을 같이 전달하기 위해서 forward로만 다음 페이지를 이동했던 단점을 없앨 수 있다.)