2009-09-15 2 views
4

나는 원시 객체와 객체 필드로 구성된 명령 객체를 가지고있다. 양식 필드를 개체의 필드에 어떻게 바인딩합니까?Spring의 명령어 객체

나는

<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 
} 

답변

3

귀하의 목록에는 추천 활동 ([0], 활동 [1] 등)을 사용하거나 또는 지연 목록이어야하는 많은 학습 활동 객체가 미리 채워 져야합니다. lazy list는 주어진 인덱스가 참조 될 때 빈 객체로 채워지는리스트입니다.

댓글은 아파치 코 몬즈 LazyList를 사용하려고한다는 것을 나타냅니다. 작동해야하는 것은 - 가져 오기 지시문이 누락 되었습니까? 그러나 대안으로 AutoPopulatingList라고하는 Spring Lazy List 구현이있다.

2

두 가지 가능한 문제 같다 :

  1. activity.activityCourse.activity이 목록이므로 getter가 멤버 변수와 일치하지 않는 한 유효하지 않습니다. 특정 목록 요소를 처리해야합니다 (예 : activity[0].activity. 또한 실제로 존재하는지 확인해야합니다.

  2. FormController를 올바르게 구성 했습니까? Course 인스턴스를 통과해야 볼 수 있습니까? 예를 들어 Spring MVC tutorial을 살펴보십시오.

경우 # 1을 고정 # 2 올바르게 오류가 (FormController에 매핑/소스) 자세한 내용을 게시하시기 바랍니다 사라지지 않는 수행되는 것을 확인한 후.

+0

# 1을 시도했지만 IndexOutOfBoundsException이 발생합니다. 이 튜토리얼을 발견했습니다 : mattfleming.com/node/134 및 List acitivity = LazyList.getList (new List ()); 하지만 NoClassDefFoundError : org/mortbay/util/LazyList가 있습니다. 나는 이미 빌드 경로와 웹 inf/lib 경로에 commons-collection.jar를 넣으려고했지만 어떻게 든 앱은 여전히 ​​찾을 수 없다. – Jeune

+0

목록이 비어 있기 때문에'IndexOutOfBounds'를 얻는다. 위에서 말했듯이 list 요소가 실제로 존재하는지 확인해야합니다. 왜 처음부터 목록을 사용하고 있습니까? 한 페이지에서 여러 활동을 편집 하시겠습니까? 그렇다면 목록을 반복해야합니다. 그렇지 않은 경우 현재 활동을 단일 값 속성으로 표시하는 것을 고려하십시오. – ChssPly76

+0

작동하도록했습니다! jakarta commons에서 Lazy List를 사용하여 목록을 작성했습니다. 감사! – Jeune