Командные объекты весной - PullRequest
       8

Командные объекты весной

6 голосов
/ 16 сентября 2009

У меня есть командный объект, состоящий из примитивных полей и поля объекта.Как связать поля формы с полями в объекте?

Я пытался сделать это, но безрезультатно

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

Ответы [ 2 ]

3 голосов
/ 16 сентября 2009

Ваш список должен быть предварительно заполнен таким количеством объектов LearningActivity, на которое вы планируете ссылаться (используя активность [0], действие [1] и т. Д.), Или это должен быть отложенный список. Ленивый список - это список, который будет заполняться пустыми объектами при ссылке на данный индекс.

Комментарий указывает, что вы пытаетесь использовать Apache Commons LazyList, который должен работать - вам не хватает директивы импорта? Однако в качестве альтернативы существует реализация списка отложенных ссылок Spring, которая называется AutoPopulationList.

2 голосов
/ 16 сентября 2009

Два возможных вопроса здесь:

  1. activity.activity недопустимо (если ваши получатели не соответствуют вашим переменным-членам), потому что Course.activity является списком. Вам необходимо обратиться к конкретному элементу списка - например, activity[0].activity. Вы также должны убедиться, что он действительно существует.

  2. Правильно ли настроен ваш FormController? Он передает Course экземпляр для просмотра, как следует? Для примера рассмотрим учебник Spring MVC .

Если после того, как вы исправили # 1 и убедились, что № 2 выполнен правильно, ошибка не исчезнет, ​​пожалуйста, опубликуйте более подробную информацию (отображение / источник FormController).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...