如果你的嵌套属性是一个对象实例,你只是引用它直接,如:
<c:forEach var="surveyItem" items="${surveys}">
${surveyItem.title} <!-- You can use the c:out if you really want to -->
</c:forEach>
那假设你有一个集合Survey
绑定到surveys
属性的对象,并且每个Survey
都有一个标题。它将打印每个调查的标题。
如果您的嵌套属性是对象的集合,那么您可以使用forEach
循环来迭代它们,就像在您的示例中一样。
<c:forEach var="question" items="${survey.questions}">
${question.title}
</c:forEach>
,将打印的每个Question
的标题,假设你有绑定到survey
属性单个Survey
对象,并且该Survey
对象具有Question
对象作为一个字段的集合(与合适的吸气剂的方法,即getQuestions()
)。
你也可以有嵌套的循环,如:
<c:forEach var="surveyItem" items="${surveys}">
${surveyItem.title}
<c:forEach var="question" items="${surveyItem.questions}">
${question.title}
</c:forEach>
</c:forEach>
,将与各Question
在每个Survey
标题一起打印每Survey
的称号。
如果因为某些原因,你决定要传递一个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>
请更改您的问题。 “调查”是列表,地图吗? – adatapost