티스토리 뷰
url로 쿼리를 전달해서 보낼 때 GET 메소드를 구현하는 방법에 대해서 알아봤다.
1. @RequestParam
@GetMapping("/user/query")
public String 유저정보출력쿼리(@RequestParam Map<String, String> params) {
StringBuilder sb = new StringBuilder();
params.entrySet().forEach(param-> {
sb.append(param.getKey()+ ": " + param.getValue() + "\n");
});
return sb.toString();
}
응답
원래 쿼리스트링으로 몇개가 올지 모른다는 단점 때문에 사용하지 않고 있다가 Map 자료구조
를 사용하면 개수에 상관없이 사용할 수 있다는 것이 좋은 것 같다.
2. DTO
의문이 들었던 점이 쿼리스트링으로 GET 메소드를 구현해도 DTO로 받는다면 해당하는 어노테이션이 필요할 것이라고 생각했다.
@GetMapping("/user/dto")
public String 유저정보출력DTO(UserDTO userDTO) {
return userDTO.toString();
}
응답 - 에러
값이 하나도 담기지 않은 것을 확인할 수 있다. 그리고 @RequestParams나 @RequestBody 어노테이션을 사용하면 런타임에러가 발생함을 확인할 수 있었다.
응답 - 해결
값이 담기지 않는 이유에 대해서 값은 전달이 되지만 UserDTO에 담기지 않는다는 생각을 했고 생성자를 통해 해결할 수 있을거라 생각했고 UserDTO 클래스에 @AllArgsConstructor 어노테이션
을 추가하며 해결할 수 있었다.
'🍃 스프링' 카테고리의 다른 글
[SPRING] JPA 순환 참조 (0) | 2023.09.11 |
---|---|
[SPRING] ResponseDTO (0) | 2023.08.28 |
[SPRING] 컬렉션 (0) | 2023.07.30 |
[SPRING] Entity, DTO (0) | 2023.07.24 |
[SPRING] JPA (0) | 2023.06.05 |