Question

J'ai un objet de commande composé de champs primitifs et d'un champ d'objet. Comment lier mes champs de formulaire aux champs de l'objet?

J'ai essayé de le faire mais en vain

<form:form commandName="course" method="POST">
     <form:input path="activity.activity"/>
         .
         .
         .
</form:form>

Je reçois cette erreur

org.springframework.beans.NotReadablePropertyException: 
      Invalid property 'course' of bean class

Ma classe de commande est comme ça

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
}
Était-ce utile?

La solution

Votre liste doit être pré-remplie avec autant d'objets LearningActivity que vous envisagez de faire référence (à l'aide de l'activité [0], de l'activité [1], etc.) ou doit être une liste paresseuse. Une liste paresseuse est une liste qui se remplira d’objets vides lorsqu’un index donné est référencé.

Un commentaire indique que vous essayez d'utiliser Apache Commons LazyList, ce qui devrait fonctionner. Une directive d'importation vous manque-t-elle? Cependant, une autre solution consiste à implémenter la liste paresseuse Spring appelée AutoPopulatingList.

Autres conseils

Deux problèmes possibles ici:

  1. activity.activity n'est pas valide (sauf si vos getters ne correspondent pas à vos variables de membre) car Course.activity est une liste. Vous devez adresser un élément de liste particulier - par exemple. activité [0] .activité . Vous devrez également vous assurer qu'il existe réellement.

  2. Avez-vous correctement configuré votre FormController? Passe-t-il l'instance de Course à afficher comme il se doit? Jetez un coup d’oeil à Tutoriel Spring MVC pour un exemple.

Si après avoir corrigé # 1 et vérifié que n ° 2 est correctement effectué, l'erreur ne disparaît pas, merci de publier plus de détails (source / mappage FormController).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top