400 bad Request 오류

강낭콩·2023년 7월 5일

게시판 삭제를 테스트 하려고 BoardDTO를 매개변수로 받는데 전송과 받는 방법을 잘 모르겠다.

해결

URL로 값을 받을거면 @PathVariable로 받고

JSON으로 값을 받으려면 @RequestBody로 받으면 알아서 변수이름과 JSON의 Key값이 자동으로 매핑되어서 저장이 된다. 아래와 같이 적고

  • 매개변수로 받을때 기본생성자를 만들어야 한다.

    @RequestBody:
    역할: HTTP 요청의 본문(body)에 포함된 데이터를 자바 객체로 변환합니다.
    사용 예시: JSON 또는 XML과 같은 형식의 데이터를 자바 객체로 변환할 때 사용합니다.
    사용 위치: 메서드 매개변수에 @RequestBody를 붙여 사용합니다.

@DeleteMapping("/delete")
    public String deleteBoard(@RequestBody BoardDTO boardDTO) {
        log.info("deleteboard...." + boardDTO);
        replyService.deleteAllByBno(boardDTO.getBno());
        boardService.delete(boardDTO.getBno());
        return "redirect:/board/list";
    }

아래와 같이 JSON을 전송하면 잘 작동이 된다.

@RequestParam:
역할: HTTP 요청의 쿼리 파라미터(query parameter) 값을 가져옵니다.
사용 예시: 요청 URL의 쿼리 파라미터 값을 가져와서 처리할 때 사용합니다.
사용 위치: 메서드 매개변수에 @RequestParam을 붙여 사용하거나, 필드에 @RequestParam을 붙여 사용합니다.

0개의 댓글