작성자 없음
작성자 정보가 삭제된 글입니다.
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 등록 처리 - @ModelAttribute
작성
·
229
0
컨트롤러에서 model.addAtrtibute시 attributeName을 임의로 설정하면 왜
th:value="${attributeName.} ( 프로퍼티 접근) 시에 오류가 생기는건가요??attributeName을 어떤거랑 일치시켜야 하나요?!
답변 1
안녕하세요. jaehun306님, 공식 서포터즈 y2gcoder입니다.
model.addAttribute("name", 객체);
위와 같이 저장해줬다고 하면 해당 객체를 찾기 위한 값(attributeName)이 "name"이기 때문입니다.
타임리프도 model에 저장할 때의 attributeName을 기준으로 해당 객체를 찾기 때문에, 모델에 저장할 때와는 다른 이름으로 찾으려 하면 타임리프가 찾을 수 없습니다
감사합니다.
model.addAttribute("findItem", findItem) 으로 저장해줬는데
타임리프에서 findItem.~으로 접근하면 해당 오류가 나와서
후에 model.addAttribute("item", item) 으로 저장 하고
타임리프에서도 동일하게 item.~ 로 접근했더니 해결되어서 질문 드렸습니다.
이 경우엔 무엇이 문제일까용 ? ㅠㅠㅠ
이해했습니다! 실제 코드를 봐야 답변을 드릴 수 있을 것 같습니다!
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
링크: 공식 서포터즈
링크: 자주하는 질문
model.addAttribute("findItem", findItem) 으로 저장해줬는데
타임리프에서 findItem.~으로 접근하면 해당 오류가 나와서
후에 model.addAttribute("item", item) 으로 저장 하고
타임리프에서도 동일하게 item.~ 로 접근했더니 해결되어서 질문 드렸습니다.
이 경우엔 무엇이 문제일까용 ? ㅠㅠㅠ