jsp나 thymeleaf 등 뷰관련 템플릿 개발 시 자주 볼 수 있는 메시지인데 내용 슬쩍 보면 partner 을 뷰에서 사용할 수 없다는 것이다.
결론은 아래 코드에서 @ModelAttribute가 빠져서 view에서는 partner 필요한데 없기 때문이다.
@Valid @ModelAttribute("partner") RegisterRequest request
참고로 아래 두 코드는 같습
@ModelAttribute("memberForm") Member form코드는
model.addAttribute("memberForm", form) 대체됩니다.
1. @ModelAttribute 생략할 수 있는데 생략하면 메서드 내에서 별도로 addAttribute를 해야 한다.
public void create(RegisterRequest request){
model.addAttribute("partner", request);
}
2. 그런데 따로 addAttribute를 하지 않으면 자동으로 아래와 같이 인식되는데
model.addAttribute(request);
이때 키는 자동으로 객체타입의 앞글자를 소문자로 변환해서 사용된다.
model.addAttribute("RegisterRequest",request);
따라서,
view에서는 모델에서 partner을 꺼내야되는데 RegisterRequest 키만 있어서 오류가 발생했던것이다.
'Java && Spring' 카테고리의 다른 글
spring NoSuchMethodException 에러 (0) | 2022.06.22 |
---|---|
thymeleaf input에 default value 적용 안되는 현상 (0) | 2022.06.20 |
The authentication type 10 is not supported (0) | 2021.11.24 |
@Transactional 사용시 주의해야할 점 (0) | 2021.10.02 |
[인터페이스를 사용하는 이유] - 부제 : 빈등록 시 빈 타입은 interface 타입이다. (0) | 2021.10.02 |