문제
원시 필드와 객체 필드로 구성된 명령 개체가 있습니다. 내 형태의 필드를 물체의 필드에 어떻게 바인딩합니까?
나는 이것을 시도했지만 아무 소용이 없었다
<form:form commandName="course" method="POST">
<form:input path="activity.activity"/>
.
.
.
</form:form>
이 오류가 발생합니다
org.springframework.beans.NotReadablePropertyException:
Invalid property 'course' of bean class
내 명령 수업은 이와 같습니다
public class Course {
private long id;
private String owner;
private String title;
private List<LearningActivity> activity = new ArrayList<LearningActivity>();
//getters and setters
}
public class LearningActivity {
private long ID;
private String activity;
private String link;
//getters and setters
}
해결책
목록에는 (활동 [0], 활동 [1] 등을 참조하려는만큼 많은 학습 활동 객체가 사전 인구를해야하거나 게으른 목록이어야합니다. 게으른 목록은 주어진 색인이 참조 될 때 빈 개체로 자체적으로 채워질 목록입니다.
의견은 Apache Commons Lazylist를 사용하려고한다는 것을 나타냅니다. 그러나 대안으로서 AutopulatingList라는 스프링 게으른 목록 구현이 있습니다.
다른 팁
여기에 가능한 두 가지 문제가 있습니다.
activity.activity
유효하지 않습니다 (Getters가 회원 변수에 해당하지 않는 한).Course.activity
목록입니다. 특정 목록 요소를 다루어야합니다 - 예 :activity[0].activity
. 또한 실제로 존재하는지 확인해야합니다.FormController를 올바르게 구성 했습니까? 통과합니까?
Course
예상으로 볼 인스턴스? 보세요 스프링 MVC 튜토리얼 예를 들어.
#1을 수정하고 #2가 올바르게 완료되었는지 확인한 후 오류가 사라지지 않으면 자세한 내용을 게시하십시오 (FormController 매핑 / 소스).
제휴하지 않습니다 StackOverflow