如何在Spring Boot / JSP中的一个<TD>中显示一组数组?

问题描述

如果一个以上的TD我想显示所有正确答案(绿色),如果一个以上的TD我想显示所有错误的答案(红色)。无论如何,在控制器中还是在前端,我都能做到这一点?
用我当前的代码,这就是我得到的。

enter image description here

目标是这样显示

enter image description here

控制器

    @GetMapping("/quesInAss/{id}")
    public String quesInAssessment(@PathVariable("id") Integer id,Model model,HttpSession session) {

        Integer insId = (Integer) session.getAttribute("instId");
        List<Answers> rlist = new ArrayList<Answers>();
        List<Answers> wlist = new ArrayList<Answers>();

        Assessments ass = as.getAllByAssInst(id,insId);
        model.addAttribute("assName",ass.getAssName());

        List<Questions> queslist = qs.getQuesByAssessment(ass);
        for (Questions ques : queslist) {
            List<Answers> anslist = ansService.getAnswersByQuestion(ques);
            for (Answers answer : anslist) {
                if (answer.getAnsStatusCode().equals("CORR")) {
                    rlist.add(answer);
                    Answers[] array = new Answers[rlist.size()];
                    array = rlist.toArray(array);
                    model.addAttribute("rightAnsList",array);                  
                } else {
                    wlist.add(answer);
                    Answers[] array = new Answers[wlist.size()];
                    array = wlist.toArray(array);
                    model.addAttribute("wrongAnsList",array);
                }
            } 
        }
        model.addAttribute("queslist",queslist);
        return "listOfQuesInAss";
    }

JSP

    <c:forEach items="${queslist}" var="ques">
        <tr>
            <td>${ques.quesText}</td>
            
            <c:forEach items="${rightAnsList}" var="rightans">
                <c:if test="${rightans.questions.quesId == ques.quesId}">
                    <td>${rightans.answer}</td>
                </c:if>
            </c:forEach>
            <c:forEach items="${wrongAnsList}" var="wrongans">
                <c:if test="${wrongans.questions.quesId == ques.quesId}">
                    <td>${wrongans.answer}</td>
                </c:if>
            </c:forEach>
        </tr>
    </c:forEach>    

解决方法

我不确定是否可以正确理解您的问题,请尝试以下操作:

<c:forEach items="${queslist}" var="ques">
    <tr>
        <td>${ques.quesText}</td>
         <td>
           <c:forEach items="${rightAnsList}" var="rightans" varStatus="status">
            <c:if test="${rightans.questions.quesId == ques.quesId}">
               ${rightans.answer}
            </c:if>
            <c:if test="${not status.last}">,</c:if>
           </c:forEach>
        </td>
        <td>
          <c:forEach items="${wrongAnsList}" var="wrongans" varStatus="status">
            <c:if test="${wrongans.questions.quesId == ques.quesId}">
                ${wrongans.answer}
            </c:if>
            <c:if test="${not status.last}">,</c:if>
          </c:forEach>
        </td>
    </tr>
</c:forEach>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...