ここで欠けているのはのポイントだと思います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}。