我认为您在这里缺少的是var
. 在您的第一个循环captureQuestion
中,将是来自 list 的当前对象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}
.