如何使用JSTL打印嵌套对象? [英] How to print nested objects using JSTL?
本文介绍了如何使用JSTL打印嵌套对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用JSTL在JSTL页面上打印地图中嵌套对象/属性的值?
<c:foreach items="${survey}" var="survey">
<c:out value="${survey.value}" />
</c:foreach>
Survey
有一个名为Questions
属性,这是另一个Bean,我想打印这些问题survey.questions.getId()
或survey.questions.getTitle()
),<c:forEach>
语句会是什么样子?
在我的情况下,${survey}
是Map
而不是Collection
。
推荐答案
如果您的嵌套属性是单个对象实例,则只需直接引用它,如下所示:
<c:forEach var="surveyItem" items="${surveys}">
${surveyItem.title} <!-- You can use the c:out if you really want to -->
</c:forEach>
假设您有一个绑定到surveys
属性的Survey
对象集合,并且每个Survey
都有一个标题。它将打印每个调查的标题。
如果您的嵌套属性是一个对象集合,则使用forEach
循环来迭代它们,就像在您的示例中一样。
<c:forEach var="question" items="${survey.questions}">
${question.title}
</c:forEach>
这将打印每个Question
的标题,假设您有一个绑定到survey
属性的Survey
对象,并且Survey
对象将一个Question
对象集合作为一个字段(使用适当的getter方法,即getQuestions()
)。
您还可以有嵌套循环,如:
<c:forEach var="surveyItem" items="${surveys}">
${surveyItem.title}
<c:forEach var="question" items="${surveyItem.questions}">
${question.title}
</c:forEach>
</c:forEach>
这将打印每个Survey
的标题以及每个Survey
中每个Question
的标题。
如果您出于某种原因决定传递Map
,您可以这样做:
<c:forEach var="entry" items="${surveyMap}">
Map Key: ${entry.key}
Map Value: ${entry.value}
Nested Property: ${entry.value.title}
Nested Collection:
<c:forEach var="question" items="${entry.value.questions}">
${question.title}
</c:forEach>
</c:forEach>
这篇关于如何使用JSTL打印嵌套对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文