Java 试图从列表在jsp中实现jstl

Java 试图从列表在jsp中实现jstl,java,jsp,Java,Jsp,以下是我的Java代码: List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id); model.addObject("questionList", questionList); Iterator<EmployeeBean> iterator = questionList.iterator(); while (iterator.hasNext()) {

以下是我的Java代码:

   List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id);
   model.addObject("questionList", questionList);

   Iterator<EmployeeBean> iterator = questionList.iterator();
    while (iterator.hasNext()) {
       String q_id =iterator.next().getSk_question_id();
       System.out.println("QUESTION ID :"+q_id);
       List<EmployeeBean>optionList= adao.displayOptions(eBean,q_id);
       model.addObject("optionList", optionList);
      }
ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
迭代器迭代器=questionList.Iterator();
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
ListoptionList=adao.displayOptions(eBean,q_id);
model.addObject(“optionList”,optionList);
}
基于第一个列表(问题列表),字符串q_id将具有多个id。 基于q_id,我将从第二个列表(optionList)中获得多个选项

以下是我在jsp中尝试的内容:
我无法获取optionList值。仅获取列表的最后一个值

  <c:forEach var="EmployeeBean" items="${questionList}">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList}">
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>

${EmployeeBean.question_name}
${EmployeeBean.answer\u type}
${EmployeeBean.answer}

试试这个:

   List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id);
   model.addObject("questionList", questionList);


   List<EmployeeBean>optionList = new ArrayList<>();
   Iterator<EmployeeBean> iterator = questionList.iterator();
   while (iterator.hasNext()) {
          String q_id =iterator.next().getSk_question_id();
          System.out.println("QUESTION ID :"+q_id);
          optionList.addAll(adao.displayOptions(eBean,q_id)); 
   }
   model.addObject("optionList", optionList);
ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
ListoptionList=新建ArrayList();
迭代器迭代器=questionList.Iterator();
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
optionList.addAll(adao.displayOptions(eBean,q_id));
}
model.addObject(“optionList”,optionList);
试试这个:

   List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id);
   model.addObject("questionList", questionList);


   List<EmployeeBean>optionList = new ArrayList<>();
   Iterator<EmployeeBean> iterator = questionList.iterator();
   while (iterator.hasNext()) {
          String q_id =iterator.next().getSk_question_id();
          System.out.println("QUESTION ID :"+q_id);
          optionList.addAll(adao.displayOptions(eBean,q_id)); 
   }
   model.addObject("optionList", optionList);
ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
ListoptionList=新建ArrayList();
迭代器迭代器=questionList.Iterator();
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
optionList.addAll(adao.displayOptions(eBean,q_id));
}
model.addObject(“optionList”,optionList);
一种可能的方式(如果一个
q\u id
没有相关数据列表,则可能显示不正确):

ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
List resultList=new ArrayList();
迭代器迭代器=questionList.Iterator();
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
add(adao.displayOptions(eBean,q_id));//按索引存储
}
addObject(“选项列表”,结果列表);
JSP代码:

 <c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList.get(status.index)}"><!-- get the related data list -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>
<c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList_status.index}"><!-- not sure if it can work correct here -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>

${EmployeeBean.question_name}
${EmployeeBean.answer\u type}
${EmployeeBean.answer}


另一种方法(我没有尝试,你可以测试)

Java代码:

   List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id);
   model.addObject("questionList", questionList);

   int index = 0;
   while (iterator.hasNext()) {
          String q_id = iterator.next().getSk_question_id();
          System.out.println("QUESTION ID :"+q_id);
          model.addObject("optionList_"+index,adao.displayOptions(eBean,q_id));
          index++;
   }
ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
int指数=0;
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
model.addObject(“optionList_u”+索引,adao.displayOptions(eBean,q_id));
索引++;
}
JSP代码:

 <c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList.get(status.index)}"><!-- get the related data list -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>
<c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList_status.index}"><!-- not sure if it can work correct here -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>

${EmployeeBean.question_name}
${EmployeeBean.answer\u type}
${EmployeeBean.answer}

一种可能的方式(如果一个
q\u id
没有相关数据列表,则可能显示不正确):

ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
List resultList=new ArrayList();
迭代器迭代器=questionList.Iterator();
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
add(adao.displayOptions(eBean,q_id));//按索引存储
}
addObject(“选项列表”,结果列表);
JSP代码:

 <c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList.get(status.index)}"><!-- get the related data list -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>
<c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList_status.index}"><!-- not sure if it can work correct here -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>

${EmployeeBean.question_name}
${EmployeeBean.answer\u type}
${EmployeeBean.answer}


另一种方法(我没有尝试,你可以测试)

Java代码:

   List<EmployeeBean>questionList=adao.displayQuestions(eBean,functional_id);
   model.addObject("questionList", questionList);

   int index = 0;
   while (iterator.hasNext()) {
          String q_id = iterator.next().getSk_question_id();
          System.out.println("QUESTION ID :"+q_id);
          model.addObject("optionList_"+index,adao.displayOptions(eBean,q_id));
          index++;
   }
ListquestionList=adao.displayQuestions(eBean,功能id);
model.addObject(“问题列表”,问题列表);
int指数=0;
while(iterator.hasNext()){
字符串q_id=iterator.next().getSk_question_id();
System.out.println(“问题ID:+q_ID”);
model.addObject(“optionList_u”+索引,adao.displayOptions(eBean,q_id));
索引++;
}
JSP代码:

 <c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList.get(status.index)}"><!-- get the related data list -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>
<c:forEach var="EmployeeBean" items="${questionList}" varStatus="status">
   ${EmployeeBean.question_name }

     <c:forEach var="EmployeeBean" items="${optionList_status.index}"><!-- not sure if it can work correct here -->
       <div class="col-xs-4 starategy-data">
       <div class="strategy-head">${EmployeeBean.answer_type }</div>
       <p>${EmployeeBean.answer }</p>
       </div>
     </c:forEach>
  </c:forEach>

${EmployeeBean.question_name}
${EmployeeBean.answer\u type}
${EmployeeBean.answer}



那么您的问题是什么?我无法获取optionList值。仅获取列表的最后一个值在while循环的每次迭代中,您都要重新设置optionList属性。这意味着你正在替换它。。这是一个错误。如何克服这个问题。我是新来的。请帮我解答一下你的问题是什么?我无法获取optionList值。仅获取列表的最后一个值在while循环的每次迭代中,您都要重新设置optionList属性。这意味着你正在替换它。。这是一个错误。如何克服这个问题。我是新来的。请帮助我,谢谢你的回答,现在只获得optionList的第一个值!对于每个q_id,相同的值都在重复。顺便说一句,请避免使用u,而是使用驼峰大小写规则(q_id-->qId)。感谢您的回答谢谢您的回答,现在只获取optionList的第一个值!对于每个q_id,相同的值都在重复。顺便说一句,避免使用uu,而是使用驼峰大小写规则(q_id-->qId)。感谢您的回答尝试了这个,得到了这个异常:javax.servlet.jsp.jsptageException:不知道如何在forEach@Manju对于第一个答案,我不确定其中一个
q_id
是否没有数据列表,然后,如果它运行良好(它将添加一个空列表)。你需要测试你自己。是的,我是