개발자
@RequestMapping("/member/delete/{id}") public ResponseEntity<String> deleteMember(@RequestParam List<String> id) { int result1=secessionService.deleteSecession(id); int result = memberService.deleteMember(id); HashMap<String, String> map = new HashMap<String, String>(); map.put("count", String.valueOf(result)); if(result != 0) { map.put("message", "데이터 삭제 성공"); }else { map.put("message", "데이터 삭제 실패"); System.out.println(result); } return new ResponseEntity(map,HttpStatus.OK); } 체크박스로 선택한 여러개의 아이디들을 한꺼번에 삭제하려는데 하나만 선택했을 때만 삭제가 되고 있어요 삭제하려는 아이디가 1개가 될수도 10가 될수도 있어 불특정, 유동적입니다 그러려면 RequestMapping부분을 어떻게 고치면 좋을까요??
답변 2
일단.. 사용하신 방법은 PathParam으로 List 형은 못받는 것으로 알고있어요 ㅎㅎ 그 외에 여러가지 방법이 있을 수 있을 것 같은데요... 1. RequestParam 사용 아래 코드와 같이 변경후 url을 localhost/member/delete?ids=user1,user2 2. RequestBody 사용 아래 코드와 같이 변경후 url 호출시 Body로 삭제하고자 하는 ID 목록을 넘겨주면 될 것 같아요
1 2 3 4 5 6 7
1. @DeleteMapping("/member/delete") public ResponseEntity<String> deleteMember(@RequestParam List<String> ids) 2. @PostMapping("/member/delete") public ResponseEntity<String> deleteMember(@RequestBody List<String> ids)
여러 개의 아이디를 삭제하기 위해 패스 변수가 아닌 요청 파라미터를 사용하는 것이 더 적절합니다. 아래 코드는 ' @PathVariable ' 대신 ' @RequestParam '을 사용하여 여러 개의 아이디를 처리하는 방법을 보여줍니다. 또한, 요청 URL에서 ' /delete ' 부분을 제거하고, HTTP 메서드를 DELETE로 변경하는 것이 RESTful API 디자인에 더 적합합니다. 이렇게 변경한 후, 클라이언트 측에서 DELETE 요청을 보내고, 아이디 목록을 쿼리 파라미터로 전달하면 됩니다. 예를 들어, 삭제하려는 아이디가 1, 2, 3인 경우 요청 URL은 다음과 같습니다. ----- ✅ Chat GPT의 답변을 평가해 주세요! 틀린 내용은 없는지, 답변이 도움이 되었는지 댓글로 작성해 주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#1 @RequestMapping(value = "/member", method = RequestMethod.DELETE) public ResponseEntity<String> deleteMember(@RequestParam List<String> ids) { int result1 = secessionService.deleteSecession(ids); int result = memberService.deleteMember(ids); HashMap<String, String> map = new HashMap<String, String>(); map.put("count", String.valueOf(result)); if (result != 0) { map.put("message", "데이터 삭제 성공"); } else { map.put("message", "데이터 삭제 실패"); System.out.println(result); } return new ResponseEntity<>(map, HttpStatus.OK); } #2 DELETE /member?ids=1&ids=2&ids=3
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!