본문 바로가기

내일배움캠프/Today I Learned

[TIL] 나의 스물 여덟번째 회고록

error message : Required request parameter 'id' for method parameter type Long is not present

 

게시판 비밀번호 체크기능을 구현하다가 위의 에러가 발생하였다. 

파라미터도 넘긴 id값이 Controller로 넘어가지 않는다는? 아니면 null값이라는? 말 같다. 

form태그에서 submit을 통해 파라미터 id값을 넘기는데 넘어가지 않는 듯 하다. 

 

에러 관련 정리할 내용

  • HTML에서 form태그를 통해 method가 POST로 전송이 되었고 따라서 @RequestParam으로 값을 받을 수 있다
  • GET 메서드, @GetMapping을 통해 localhost:8080?userId=1234&name=username 과 같은 형태로 전송되어 @RequestParm 어노테이션을 통해 해당 값들을 받는다
  • 키값이 없는 경우, null을 허용하기 위해 @RequestParameter(required = false)를 추가하면 해당 값이 없어도 BadRequest가 발생하지 않는다
  • 만약 값이 없는 경우, Default 값을 설정 하고 싶다면 @RequestParameter(defaultValue = 1234)와 같이 지정해 줄 수 있다
  • Map을 통해서 많은 파라미터를 관리하고 required=false 없이도 예외 발생을 막을 수 있다
    • Map에 카값들을 등록해준다
    • @PostMapping("/page/registration/mainPage") public String regDescription(@RequestParm HashMap<String, Integer> parmMap) { ... }