게시글 삭제할때 삭제문구만 화면에 나타내고 싶었는데 자꾸 안에 내용물도 다같이 나오는 것이다ㅜㅜ

캡쳐는 다른 내용이지만 저 내용에서 값이 전부 'null'로 나오고 "msg"값만 "삭제 성공" 이라고 떴다.

마음에 안드는 것......

어떻게해야 코드를 고칠 수 있는지 생각이 안났다ㅜㅜ

[Service.java]

@Transactional
public String deleteAll(Long id, String password) {
Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("게시글이 존재하지 않습니다.")
);

if (post.getPassword().equals(password)) {
postRepository.deleteById(id);
return "삭제 성공";
} else {
return "비밀번호가 다릅니다.";
}

[Controll.java]

@DeleteMapping("/post/{id}")
public String deleteAll(@PathVariable Long id, @RequestBody String password) {
return postService.deleteAll(id,password);
}
}

정말 간단하게 그냥 return 값을 다 지우고 String으로 받아주면 되는 것이었음;;;

나는 왜 복잡하고 어렵게 항상 생각해서 문제일까ㅋㅋㅋㅋㅋ

 

비밀번호가 다를때
비밀번호 체크 후 삭제 성공했을 때

 

아유 게비스콘!~ㅋㅋㅋㅋㅋㅋㅋㅋㅋ


[수정 시]

올바른 비밀번호 입력
비밀번호 틀렸을 때

[Service.java]

@Transactional
public PostResponseDto update(Long id, PostRequestDto postRequestDto) {

Post post = postRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("아이디가 존재하지 않습니다.")
);
PostResponseDto postResponseDto = new PostResponseDto(post);
if (!post.getPassword().equals(postRequestDto.getPassword())) {
postResponseDto.setMsg("업데이트 실패");
return postResponseDto;
}else {
post.update(postRequestDto);
postResponseDto = new PostResponseDto(post);// 위에 post는 업데이트가 안되었기 때문에
postResponseDto.setMsg("업데이트 성공"); // 74,75번줄 순서 중요!!
return postResponseDto;
}
}

[Controll.java]

@PutMapping("/put/{id}")
public PostResponseDto updatePost(@PathVariable Long id, @RequestBody PostRequestDto postRequestDto) { //@RequestBody : http의 요청이 그대로 적힘
return postService.update(id,postRequestDto);
}

여기서 중요한 것은 postResponseDto = new PostResponseDto(post); 와

postResponseDto.setMsg("업데이트 성공"); 부분이 순서가 달라지만 업데이트 성공 메세지가 'Null'로 뜬다는 것,,

이미 postResponseDto을 메세지로 넣어주기때문에 달라질 수 있으므로 순서에 유의할 것!!!

+ Recent posts