比如我一个问卷有类型,然后每个类型下面有不同的题目,每个题目下面有4个选项,我得到了题目,但是得到的题目下面的选项却是相同的,我要怎么才能得到每个题目下面的对应的选项呢?
我的Java代码String aid = request.getParameter("aid");
AType aType = this.atypeSevBean.getAtypeById(Integer.parseInt(aid));
List qlist = new ArrayList(aType.getQuestionses());
request.setAttribute("qlist", qlist);
for(int i = 0;i<qlist.size();i++){
List cList = new ArrayList(((Questions)qlist.get(i)).getChooses());
request.setAttribute("clist", cList);
} jsp代码:
  <td height="35" align="right">题目名字:</td>
    <td align="left" height="35">
        <s:iterator value="#request.qlist">
<h1>${questName }</h1><br/>
  <s:iterator value="#request.clist">
${chooseName }<br/>
</s:iterator>
   </s:iterator>
 
    </td>

解决方案 »

  1.   

    你这个不是显示的问题,而是你后台sql语句没写正确, 从新组织下语言,把数据库中 数据的存储结构贴上来。
      

  2.   

    for(int i = 0;i<qlist.size();i++){
    List cList = new ArrayList(((Questions)qlist.get(i)).getChooses());
    request.setAttribute("clist", cList);

    都只存了一个cList;后面的被前面的覆盖了。
      

  3.   

    支持2楼
    request里的clist只剩下最后一个选项
      

  4.   


    这个应该不是sql语句的问题吧?我后台是输出来了的啊
      

  5.   


    那我是不是每一个得到之后在把他放在一个list或者是map里面啊?
      

  6.   


    List cList = new ArrayList();
    for(int i = 0;i<qlist.size();i++){
    Questions questions = qlist.get(i);
    cList.add(questions.getChooses());

    request.setAttribute("clist", cList);
      

  7.   

    把所有的值都塞进一个List再放到request
      

  8.   

    那我jsp页面得到的会不会不是对应的啊,因为肯定是一个问题对应一个答案啊,我先试一下了来啊
      

  9.   


    每个类型下面有不同的题目,每个题目下面有4个选项,我得到了题目,但是得到的题目下面的选项却是相同的,我要怎么才能得到每个题目下面的对应的选项呢?
    这里只说说大致的思路:
    List 1、首先你根据你的题目类型进行查询或用group by 按类型分组,即可以得到题目的类型;
    List 2、然后根据每个类型和类型的编号id进行查询题目;
    List 3、根据题目的编号或id进行查询题目的选项;这里是3层list,即list1放入的题目类型,类型里面有个list放入的是题目,题目里面有个list放的是题目的选项;
    <c:forEach items="${list1 }" var="a">
           类型:${a.type}
           题目:<c:forEach items="${a.list2 }" var="b">
                      ${b.questionses}
                      选项:<c:forEach items="${b.list2 }" var="c">
                             ${c.item}
                           </c:forEach>
                </c:forEach>
    </c:forEach>所以你在存放list的时候就和上面的相反,颠倒过来把值放入list即可。
      

  10.   

    题目类型表
    问题表(有题目类型ID)
    答案表(应该说每个问题的答案都不同吧,一般就4个答案只有一个正确的)
    那么。你首先根据题目类型,查询出所有符合类型的问题存为一个几个(这步你应该做了)
    然后再查出所有答案存为一个集合
    在页面 两层循环
    外层循环所有问题
    里层循环答案,然后判断答案表的问题ID和外层的ID是否相等要么在后台做成Map形式,以问题为key答案为value
      

  11.   

       你这明明是放有request 中 ,用struts2 标签取得出来吗?
       struts2 标签 的取法是这样设的吗?
          你只要到ACTION 中设置get set 方法 就可以 到页面取到值 。
      

  12.   

    List cList = new ArrayList();
    for(int i = 0;i<qlist.size();i++){
    cList = ((Questions)qlist.get(i)).getChooses()
    }request.setAttribute("clist", cList); 
      

  13.   

    我也认为应该用map类型存储!key可以id,题目和对应答案以String[]类型存储!
    <s:iterator value="#request.qlist">
    <h1>${questName }</h1><br/>
    <s:iterator value="#request.clist">
    <s:property value="value[0]"/><br/>
    <s:property value="value[1]"/><br/>
    <s:property value="value[2]"/><br/>
    <s:property value="value[3]"/><br/>
    <s:property value="value[4]"/><br/>
    </s:iterator>
      </s:iterator>
    类似这种方式访问