Spring Parameter에 대해

오의석·2022년 10월 19일

스프링

목록 보기
4/16

1. PathVariable

url 자체에서 값을 같이 보내는 경우, 이렇게 사용할 수 있다.
특정 게시판은 이런 식으로 사용하는 경우도 보았다.

@GetMapping("/main/{para}")
public String findByName(@PathVariable("para") String para ) {
return "parameter: " + para;
}

2. RequestParam

(1) 생략 (required=true)로 세팅되어 있다.

@GetMapping("/request")
public String rp(String id, int pass) {
return String.format("name=%s, age=%d", id, pass);
}

(2) required 세팅

필수로 있어야 하면 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);
}

(3) defaultValue 세팅

입력없이 오는 경우에는 세팅한 값으로 받아 온다.

@GetMapping("/request")
public String rp(@RequestParam(required=false) String id, @RequestParam(defaultValue="100") int pass) {
return String.format("name=%s, age=%d", id, pass);
}

3. RequestHeader

헤더 정보를 같이 받아 올 수 있다.

@GetMapping("/request")
public Map<String, Object> rh(@RequestHeader Map<String, Object> requestHeader) {
return requestHeader;
}

기본적으로 host,user-agent,cookie,accept 등을 받아올 수 있다.

4. CookieValue

쿠키값은 다음과 같은 형식으로 읽어 올 수 있다.

@GetMapping("/request")
public String ck(@CookieValue(value = "cookieName", required = false) Cookie coookie) {
if(cookie != null) {
String cookieValue = cookie.getValue();
}
return "hello";
}

5. ResponseBody

자바스크립트로 해당 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 + "";
}

번외(페이지를 redirect로 이동하면서, 값을 전달하고 싶을때)

RedirectAttributes redirectAttributes// 이건 매개변수로 설정
redirectAttributes.addAttribute("pgno", map.get("pgno"));

redirect 하면서, 값을 보낼 수 있다.
(전에는 값을 같이 전달하기 위해서 forward로만 다음 페이지를 이동했던 단점을 없앨 수 있다.)

profile
끊임없이 나아가는 사람이 되어볼게요.

0개의 댓글