강의에서 나온 이 코드를 그대로 html에 사용했는데요
<span onclick="fetch('/item?id=[[${i.id}]]', { method : 'DELETE' } )">🗑️</span>
콘솔창에 이런 메시지가 뜨면서 실행이 되지 않습니다.
Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; For input string: "[[${i.id}]]"]
아무래도 파라미터로 변수를 전달하는 과정에서 id만 보내지 않고 [[${i.id}]] 부분을 통째로 string으로 전달하려고 해서 오류가 뜨는 것 같은데 이유를 모르겠습니다
참고로 컨트롤러 부분에 작성한 삭제 코드입니다.(강의 코드랑 거의 똑같음)
@DeleteMapping("/item")
ResponseEntity<String> deleteItem(@RequestParam Long id){
System.out.println("삭제요청");
itemRepository.deleteById(id);
return ResponseEntity.status(200).body("삭제되었습니다.");
}
+)파라미터 안쓰고 그냥 컨트롤러에서 itemRepository.deleteById(1L); 이런식으로 사용하면 삭제 잘 됩니다.
-
이 게시글은
yeop에 의해 10 월, 4 주 전에 수정됐습니다.