• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

메소드 선언 시 BindingResult의 위치

21.09.09 00:13 작성 조회수 254

0

강의에서 BindingResult를 사용할 때 객체 바로 뒤에 선언을 해야 한다고 하셨는데, 이게 꼭 전체 중 2번째가 아니어도 괜찮은가요? 예를 들면

public String addItem(Model model, @ModelAttribute Item item, BindingResult bindingResult) {
    // ...
}

이러한 방식으로 선언이 가능한지 궁금합니다.

제가 알고 있기로는 매개변수의 순서가 다르면 메소드 오버로딩 때문에 원하는 메소드가 실행되지 않는 것으로 알고 있는데 다른 규칙이 더 적용되고 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

OMG님의 프로필

OMG

2021.09.09

안녕하세요. Mx님, 공식 서포터즈 OMG입니다. 검증을 하지 않을 때는

 

public String addItem(Model model, @ModelAttribute Item item)

public String addItem( @ModelAttribute Item item, Model model)

위 2개가 상관이 없지만

BindingResult로 검증할 때는 알고계신것처럼 검증 객체 뒤에 BindingResult가 위치해야하며 다른 규칙은 별도로 존재하지 않는 것으로 알고 있습니다.

 

 

public String addItem(Model model, @ModelAttribute Item item , BindingResult bindingResult)

public String addItem( @ModelAttribute Item item , BindingResult bindingResult, Model model)

 

관련하여 검증 객체가 복수인 상황에서의 방식도 알아두시면 좋을 것 같아 영한님의 설명있는 링크 첨부합니다.

https://www.inflearn.com/questions/245721

감사합니다.