我对c:forEach items =" $ {} JSTL标记感到困惑。 我有一个项目类别,填写了一些文章T想按类别显示这些文章,我无法弄清楚如何在jsp文件中这样做,知道之前的所有内容都完美无缺。 我可以使用c显示类别:forEach items =" $ {categories},以及包含c:forEach items =" $ {articles}的文章,现在我想显示属于一个类别的文章,我试过c:forEach items =" $ {categorie.articles}但没有。
DAOImpl
// Articles by category
@Override
public List<Article> articleParCategorie(Long idCat)
{
Query req = em.createQuery("select a from Article a where a.categorie.idCategorie=:x");
req.setParameter("x", idCat);
return req.getResultList();
}
控制器
// Action for articles by category
@RequestMapping(value="/ConsultCat")
public String ArtParCat(Long idCat, Model model)
{
model.addAttribute("categories", metier.listCategories());
model.addAttribute("articles", metier.articleParCategorie(idCat));
return "ArticleParCat";
}
JSP文件 这是我试过的,它返回视图但没有类别或文章
<c:forEach items="${categorie.articles}" var="cat">
<div class="col align-center">
<!-- Le nom de la catégorie a partir de la base donnée -->
${cat.article.titre}
<!-- La description de la catégorie a partir de la base donnée -->
<p>${cat.description}</p>
</div>
</c:forEach>
答案 0 :(得分:0)
Class类和Class Article中的代码,以及视图ListCategories中的代码(完美地返回类别)。
分类:
@Entity
@Table(name="ARTICLE")
public class Article implements Serializable
{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long idArticle;
private String titre;
private String texte;
private Date date;
private byte [] photo;
@ManyToOne
@JoinColumn(name="ID_CAT")
private Categorie categorie;
文章类
<!-- Les catégories -->
<div class="flex flex-3">
<c:forEach items="${categories}" var="cat">
<div class="col align-center">
<div class="image round fit">
<!-- L'image de la catégories a partir de la base donnée -->
<img src="photoCat?idCat=${cat.idCategorie}">
</div>
<!-- Le nom de la catégorie a partir de la base donnée -->
${cat.nomCategorie}
<!-- La description de la catégorie a partir de la base donnée -->
<p>${cat.description}</p>
<!-- Les bouttons supprimer modifier qui devront être visible qu'aux adminisrateurs -->
<a href="ConsultCat?idCategorie=${cat.idCategorie}" class="btn btn-default" id="Goto">See more</a>
<a href="editCat?idCat=${cat.idCategorie}" class="btn btn-default" id="edit">edit</a>
<a href="suppCat?idCat=${cat.idCategorie}" class="btn btn-default" id="delete">delete</a>
</div>
</c:forEach>
类别列表查看:
rescue