ネストされたプロパティが単一のオブジェクト インスタンスである場合は、次のように直接参照するだけです。
<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
いると仮定して(つまり、適切な getter メソッドを使用して) 、各 のタイトルを出力します。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>
Survey
これにより、 each の each のタイトルとともにeveryのタイトルが出力Question
されますSurvey
。
そして、何らかの理由で a を渡すことにした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>