2012-10-05 42 views
0

我正在嘗試使用c:forEach syantax迭代jsp上的pojos列表。 現在的問題是,該列表包含一個嵌套列表,所以我應該如何在jsp上顯示該特定值。在jsp上顯示一個列表中的嵌套列表的值

這是我在JSP代碼:

<c:forEach items="${capQues.captureQuestionList}" var="captureQuestion" varStatus="status"> 
    <fieldset name="captureQuestionList[${status.index}].languageId" value="1"> 
    <legend><c:out value="${captureQuestion.languages}" /></legend> 
    <div class="question"><textarea class="textarea" name="captureQuestionList[${status.index}].question" value="question"></textarea></div> 
    </fieldset> 
</c:forEach> 

如果語言也在裏面captureQuestionList列表。

在此先感謝

回答

2

我知道你在這裏失蹤是var點。在您的第一個循環中,captureQuestion將成爲來自列表captureQuestionList的當前對象。您可以按原樣使用該參考,因此您無需使用captureQuestionList[${status.index}]即可獲取該對象。順便說一下,正確的語法是${captureQuestionList[status.index]}。所以,你fieldset的名字可以只是${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}

+0

Japser嗨,Thnks您的回覆,但我現在面臨的問題是標籤,我想disaply一門語言,這是在captureQuestion命名的語言列表中的名字......總之我的意思是captureQuestion包含列表語言和語言列表包含語言,,,所以我應該如何打印語言的名稱。 您的幫助,將不勝感激。 – user1517010

+0

請參閱編輯 –

+0

您好Japser thnks您的及時答覆。它工作正常,因爲你說過。你的幫助真的很感激。 – user1517010