jstl - forEach, haricot avoir une liste de fèves de propriété
J'ai un bean a appelé Expérience qui a une propriété qui est une liste de tableaux de haricots d'un type appelé Test.
Dans une jsp je veux parcourir la liste des tests stockés dans une Expérience de haricots, ce que j'essaie de le faire en faisant ceci:
<c:forEach items="${exp.assays}" var="ay">
<tr><td>${ay.decision}</td><td>${ay.comment}</td></tr>
</c:forEach>
'décision' et 'commentaire' sont les propriétés du Test de haricot.
Mais cela ne fonctionne pas. J'obtiens l'erreur:
SEVERE: javax.el.PropertyNotFoundException: The class 'beans.Experiment' does not have the property 'decision'.
comme si les éléments dans l'exp.des dosages liste de type de bean Expérience et pas de Test que je m'attends.
Donc j'ai essayé d'accéder à l'Expérience de la propriété (de l'aïd, qui je sais que je peux y accéder directement par l'écriture de ${exp.eid}) dans le forEach de la boucle au lieu de cela, comme ceci:
<c:forEach items="${exp.assays}" var="ay">
<tr><td>${ay.eid}</td></tr>
</c:forEach>
mais ensuite, j'ai eu le message d'erreur:
SEVERE: javax.el.PropertyNotFoundException: The class 'beans.Assay' does not have the property 'eid'.
Quelqu'un qui sait ce qui se passe ou comment je pourrais résoudre ce problème?
Le plein de haricots code est assez long, mais ici sont les pièces qui je pense sont pertinentes ici
Expérience:
public class Experiment extends dataItem implements Serializable {
private String eid;
private List<Assay> assays = new ArrayList();
public String getEid() {
return eid;
}
public void setEid(String id) {
eid = id;
}
public List<Assay> getAssays() {
return assays;
}
public void setAssays(List<Assay> assays) {
this.assays = assays;
}
}
Et Dosage:
public class Assay extends dataItem implements Serializable {
private Integer id;
private stock antigen;
private String decision;
private String comment;
private String freeAb;
private List<AssayData> data;
private List<conjugate> conjugates = new ArrayList();
public List<conjugate> getConjugates() {
return conjugates;
}
public void setConjugates(List<conjugate> conjugates) {
this.conjugates = conjugates;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public stock getAntigen() {
return antigen;
}
public void setAntigen(String id) {
stock s = new stock();
s.setSID(id);
this.antigen = s;
}
public String getDecision() {
return decision;
}
public void setDecision(String decision) {
this.decision = decision;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getFreeAb() {
return freeAb;
}
public void setFreeAb(String freeAb) {
this.freeAb = freeAb;
}
public List<AssayData> getData() {
return data;
}
public void setData(List<AssayData> data) {
this.data = data;
}
}
J'ai ajouté le code. J'ai été en regardant les getters mais je ne peux pas voir quelque chose de mal avec eux.
Je suis d'accord les accesseurs sont beaux. Vous le poster de la JSP. Avez-vous inclus les taglibs <%@ taglib uri="java.sun.com/jsp/jstl/core" prefix="c" %> et importés de l'Expérience de la classe <%@ page import="com.taglibs.Expérience"%>?
OriginalL'auteur numfar | 2013-10-10
Vous devez vous connecter pour publier un commentaire.
J'ai juste essayé de reproduire le problème que vous rencontrez et trouvez qu'il fonctionne sans erreur. Voici mon code:
Le Dosage de la classe:
L'Expérience de la classe:
La JSP:
La sortie est: c1d1 c2d2
Comparer ce que j'ai fait ci-dessus avec votre code et de voir si vous pouvez repérer les différences. Si vous continuez à avoir des problèmes pour poster votre code ici.
OriginalL'auteur Alex Theedom
Cela a été résolu.
Le problème a à voir avec la façon dont je les valeurs assignées aux dosages de la liste. J'avais fait une erreur qui a transformé les tests de valeurs de la liste dans l'Expérience des haricots.
OriginalL'auteur numfar