我正在使用 jsp、hibernate 和 spring。
我的问题是我有一个名为“carsearchlist”的对象,在 carsearchlist 中,我有另外两个名为 user 和 car 的对象。由于某种原因,这个 foreach 循环将不起作用。
<c:forEach var="csl" items="${carsearchlist}">
${csl.id}
<c:forEach var="name" items="${csl.user}">
${name.first}
</c:forEach>
</c:forEach>
我的数据显示 HQL 编辑器,如屏幕截图所示:
http://i244.photobucket.com/albums/gg5/robasc/ScreenShot2013-02-12at120841AM_zpsdb5449b4.png
这也是我对 CarSearchList 的映射:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Feb 9, 2013 8:14:19 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.usedcarsearch.domain.CarSearchList" table="Car_Search_List">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<many-to-one name="car" class="com.usedcarsearch.domain.Car" fetch="select">
<column name="fkCarId" not-null="true" />
</many-to-one>
<many-to-one name="user" class="com.usedcarsearch.domain.User" fetch="select">
<column name="fkUserId" not-null="true" />
</many-to-one>
</class>
</hibernate-mapping>
任何帮助都将不胜感激
谢谢
最佳答案
CarSearchList
实例有一个User
类型的字段和另一个Car
类型的字段。您的代码正尝试使用 forEach
对 CarSearchList.user
进行迭代。但是 user
不是集合或数组。这是一个简单的对象。没有什么可以重复的。
此外,User 类似乎没有任何name
属性。它有一个“first”属性和一个 last 属性,但这些属性直接在 User 中,而不是在 Name
子对象中。
所以你只需要
<c:forEach var="csl" items="${carsearchlist}">
${csl.id}
${csl.user.first}
</c:forEach>
关于java - jSTL 显示嵌套对象数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14825856/