쌓고 쌓다

@Valid 400 에러, 메서드 파라미터 건들였더니 에러 본문

프로그래밍/spring

@Valid 400 에러, 메서드 파라미터 건들였더니 에러

승민아 2023. 8. 1. 22:02

org.springframework.web.bind.MethodArgumentNotValidException

 

파일 업로드 관련하여 업데이트를 위해 코드를 추가했다.

@PostMapping("/poster/write")
    public String write(@Valid Poster poster,@RequestParam(required = false) List<MultipartFile> imgFiless, Errors errors) throws IOException {

        System.out.println("poster = " + poster.getImgFiles());
        System.out.println("imgFiless = " + imgFiless);
        if(errors.hasErrors()) {
            System.out.println("ERROR");
            System.out.println("errors = " + errors);
            return "posters/createPosterForm";
        }
        //posterService.write(poster);
        return "redirect:/";
    }

 

 

잘되던 유효성 검사가 갑자기 에러가 나기 시작한다...!

[Resolved [org.springframework.web.bind.MethodArgumentNotValidException:]

 

삽질한 결과를 먼저 말하자면 @Valid와 Errors의 순서가 중요하다..

아래의 코드는 정상적으로 유효성 검사를 한다.

@PostMapping("/poster/write")
    public String write(@RequestParam(required = false) List<MultipartFile> imgFiless,@Valid Poster poster ,Errors errors) throws IOException {

        System.out.println("poster = " + poster.getImgFiles());
        System.out.println("imgFiless = " + imgFiless);
        if(errors.hasErrors()) {
            System.out.println("ERROR");
            System.out.println("errors = " + errors);
            return "posters/createPosterForm";
        }
        //posterService.write(poster);
        return "redirect:/";
    }

 

@Valid 뒤에 Errors 순서로해야지 돌아간다...

이것땜에 하루종일 ㅠ,ㅠ,ㅠ,ㅠ 시간을 보냈다...

 

 

(imgFiless는 Poster 클래스의 imgFiles와 파라미터 imgFiles가 동일할때 바인딩되는거에대해 연구중이라 오타처럼 보인다.)

 

 

Comments