ネストされたプロパティが単一のオブジェクト インスタンスである場合は、次のように直接参照するだけです。
<c:forEach var="surveyItem" items="${surveys}">
${surveyItem.title} <!-- You can use the c:out if you really want to -->
</c:forEach>
これは、属性にSurveyバインドされたオブジェクトのコレクションがあり、それぞれにタイトルがあることを前提としています。各調査のタイトルが出力されます。 surveysSurvey
ネストされたプロパティがオブジェクトのコレクションである場合、forEach例のようにループを使用してそれらを繰り返します。
<c:forEach var="question" items="${survey.questions}">
${question.title}
</c:forEach>
属性にバインドされた単一のオブジェクトがあり、オブジェクトがフィールドとしてオブジェクトのコレクションを持ってQuestionいると仮定して(つまり、適切な getter メソッドを使用して) 、各 のタイトルを出力します。SurveysurveySurveyQuestiongetQuestions()
次のように、ループをネストすることもできます。
<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>