ここで欠けているのはのポイントだと思いますvar
。最初のループcaptureQuestion
には、リストからの現在のオブジェクトが含まれますcaptureQuestionList
。captureQuestionList[${status.index}]
その参照をそのまま使用できるため、オブジェクトを取得するためにを使用する必要はありません。ちなみに、これの正しい構文はです${captureQuestionList[status.index]}
。したがって、フィールドセット名は。にすることができます${captureQuestion.languageId}
。
forループはネストすることができます。たとえば(質問オブジェクトにいくつかの仮定を立てる):
<c:forEach items="${capQues.captureQuestionList}" var="captureQuestion">
<fieldset name="${captureQuestion.languageId}">
<legend><c:out value="${captureQuestion.languages}" /></legend>
<c:forEach items="${captureQuestion.questionList}" var="question">
<div class="question">
<textarea class="textarea" name="${question.id}"><c:out
value="${question.value}"/></textarea>
</div>
</c:forEach>
</fieldset>
</c:forEach>
属性textarea
がないことに注意してください。value
その本体に値を入れてください。
編集:言語のリストを反復処理する必要がある場合は、同じ原則を使用できます。
<c:forEach items="${capQues.captureQuestionList}" var="captureQuestion">
<fieldset name="${captureQuestion.languageId}">
<legend>
<c:forEach items="${captureQuestion.languages}" var="language">
<c:out value="${language.name}" />
</c:forEach>
</legend>
<div class="question">
<textarea class="textarea" name="${captureQuestion.question}"></textarea>
</div>
</fieldset>
</c:forEach>
単一の言語を表示する場合は、を追加しc:if
て言語を確認します
<c:forEach items="${captureQuestion.languages}" var="language">
<c:if test="${language.id eq captureQuestion.questionId}">
<c:out value="${language.name}" />
<c:if>
</c:forEach>
を使用できるように、モデルに適切な言語への参照を追加する方がよいでしょう${captureQuestion.language}
。