개발 기록

211202~03 TIL 본문

TIL

211202~03 TIL

수염차 2021. 12. 2. 19:55

함수 파라미터에 object인 comment 를 보낼 방법을 못 찾아서 (JSON.stringify()로 해도 안된다..) 따로 따로 보내려 하는데 string타입인 comment['contents']가 안 보내져서 한참 찾았다. ' ' 로 감싸주니 됐다 

 

 

-현재 로그인한 유저 정보 보내주기

내가 했던 방법 :

컨트롤러에서 유저 카카오아이디 받음 -> 서비스에서 카카오아이디로 유저 정보 찾아서 리턴

controller

 @GetMapping("/user")
    public UserResponseDto getUser(@AuthenticationPrincipal UserDetailsImpl userDetails) {
        return userService.getUser(userDetails.getUser().getKakaoId());
    }

service

@Transactional
    public UserResponseDto getUser(String kakaoId) {
        User user = userRepository.findByKakaoId(kakaoId).orElseThrow(
                () -> new NullPointerException("해당 아이디가 존재하지 않습니다.")
        );
        return new UserResponseDto(user);
    }

 

변경 후

: 컨트롤러에서 유저 정보 받아서 dto로 감싸서 바로 리턴하면 됨

controller

@GetMapping("/user")
    public UserResponseDto getUser(@AuthenticationPrincipal UserDetailsImpl userDetails) {
        return new UserResponseDto(userDetails.getUser());
    }

아주 간단..!

 

-form 태그는 안에 있는 버튼 태그를 누르면 따로 이벤트를 주지 않아도 자동 새로고침 된다 이것땜에 애먹음

 

-유저 정보 변경

변경할 수 있는 항목이 이름과 이미지였는데 이미지나 이름만 바꾸고 싶을 수도 있으니까 따로 변경도 가능하게 하려고 했다. 근데 파일은 mutipartfile 형식으로 보내져서 첨부하지 않을때 처리하기가 애매했다.  그래서 api를 두개 만들어서 이미지랑 이름 따로 보냈다. 프론트에서 데이터 보낼때는 기존에 썼던 코드 그대로 폼데이터로 만들어서 보냈다.

폼데이터말고 다른 걸로 보내야 맞는 것 같지만 일단 됐다. 프론트하는데 하루 시간이 다 갔다. ㅠㅠ

'TIL' 카테고리의 다른 글

211205 wil (스프링 프로젝트 2주차)  (0) 2021.12.06
211204 TIL  (0) 2021.12.04
211129 TIL ( ajax 카테고리 )  (0) 2021.11.30
211128 WIL (3차 프로젝트 1주차)  (2) 2021.11.28
211126 TIL ( object list 중복제거 )  (0) 2021.11.26
Comments