查了好久的问题!!!
在jsp中用两层c:forEach循环嵌套取对象链表中的对象的一个属性是链表,在取这个属性链表时,如果出现:
'${que.options }' Property 'options' not found on type com.ctgu.modules.inform.entity.Question2$$EnhancerByCGLIB$$5e91af0d
可能的原因是:
该对象的链表属性没有写get,和set方法,导致前端取不到。
两层c:forEach循环嵌套
题目要求:
spring MVC的返回结果为:一个类中嵌套一个list,在前台如何通过两层c:forEach来控制?
{msg=[Field [id=1, name=经济学, plist=[Profession [id=1, name=理论经济学], Profession [id=2, name=应用经济学]]]
解答过程:
<c:forEach items="${msg }" var="flist">
<span class="title">${flist.name }</span><br />
<c:forEach items="${flist.plist}" var="plist">
${plist.name }<br />
</c:forEach>
</c:forEach>
或:
<c:forEach items="${msg }" var="flist">
<span class="title">${flist.name }</span><br />
<c:set value="${flist.plist }" var="plist" />
<c:forEach items="${flist.plist}" var="plist">
${plist.name }<br />
</c:forEach>
</c:forEach>
xml如下:
<resultMap type="Field" id="selectFieldWithProfession">
<id column="field_id" property="id"/>
<result column="field_name" property="name"/>
<collection property="plist" ofType="Profession">
<id column="profession_id" property="id"/>
<result column="profession_name" property="name"/>
</collection>
</resultMap>
<!-- 前台导航一级领域及二级学科 -->
<select id="selectAllFieldWithProfession" resultMap="selectFieldWithProfession">
select f.field_id,
f.field_name,
p.profession_id,
p.profession_name
from t_field f
left outer join t_profession p
on f.field_id = p.field_id
</select>
---------------------