문제

원시 필드와 객체 필드로 구성된 명령 개체가 있습니다. 내 형태의 필드를 물체의 필드에 어떻게 바인딩합니까?

나는 이것을 시도했지만 아무 소용이 없었다

<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라는 스프링 게으른 목록 구현이 있습니다.

다른 팁

여기에 가능한 두 가지 문제가 있습니다.

  1. activity.activity 유효하지 않습니다 (Getters가 회원 변수에 해당하지 않는 한). Course.activity 목록입니다. 특정 목록 요소를 다루어야합니다 - 예 : activity[0].activity. 또한 실제로 존재하는지 확인해야합니다.

  2. FormController를 올바르게 구성 했습니까? 통과합니까? Course 예상으로 볼 인스턴스? 보세요 스프링 MVC 튜토리얼 예를 들어.

#1을 수정하고 #2가 올바르게 완료되었는지 확인한 후 오류가 사라지지 않으면 자세한 내용을 게시하십시오 (FormController 매핑 / 소스).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top