작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
1.1K
0
강좌에 나와있는대로 form class를 만들고, 타임리프를 이용하여 form 태그에 th:object 를 선언했습니다.
인풋박스에 th:field 를 사용했는데 자동완성이 안됐지만 컴파일시 오류가 없어, 문제없다고 생각했는데, 데이터 입력후 post전송을하니 th:field 부분에서 오류가 났습니다.
찾아봐도 잘 모르겠어서 문의드립니다.
답변 3
1
네 답변 너무 감사드립니다.
오류때문에 수정을 많이 하다보니 제대로확인을 못했던거 같습니다.
오류내용부터 꼼꼼히 확인해봐야겠네요.
참고로, 타임리프 에러는 컨트롤러에서 form에 빈객체를 전달할때 addAttribute가 아닌 매개변수로 전달하는 방식으로 수정해서 최종해결됐습니다.
1
소스코드 확인했습니다.
1. th:field는 다음과 같은 오류가 발생했습니다.
Neither BindingResult nor plain target object for bean name 'eventForm' available as request attribute
eventForm이라는 이름의 폼 객체가 등록되어 있지 않은 오류입니다.
컨트롤러를 확인해보면 실제 eventForm이라는 폼이 등록되지 않습니다.
@PostMapping("/basicForm")
public String setEventBasic(@Valid ReqEventForm reqEventForm, BindingResult result) {}
이런경우 다음과 같이 @ModelAttribute("eventForm")으로 이름을 지정해주면 됩니다.
@PostMapping("/basicForm")
public String setEventBasic(@Valid @ModelAttribute("eventForm") ReqEventForm reqEventForm, BindingResult result) {
2. Event 클래스의 빌더 사용문제
- 상위에 EventCategory eventCategory;가 초기화 되어 있지 않습니다.
EventCategory eventCategory = null;로 초기화 하면 됩니다.
- 추가로 Event 클래스에 @Builder가 2개 있습니다. 하나만 사용하셔야 합니다.
도움이 되셨길 바래요^^
0
안녕하세요. 김대호님
도움을 드리고 싶은데, 어떤 오류가 발생했는지 내용이 없어서 도움을 드리기가 어렵습니다.
전체 소스코드를 압축해서 어떤 부분에서 오류가 발생하는지 전체 프로젝트를 압축해서 올려주세요.
감사합니다.