首页 > 解决方案 > 如何在 Spring Boot / JSP 中显示一组数组?

问题描述

如果有多个,我想在一个 TD 中显示所有正确答案(绿色),如果有多个,我想在一个 TD 中显示所有错误答案(红色)。无论如何,在控制器或前端我可以实现这一点吗?
使用我当前的代码,这就是我得到的。

在此处输入图像描述

目的是这样显示 在此处输入图像描述

控制器

    @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>    

标签: spring-bootjspjstl

解决方案


我不确定我是否能正确理解你的问题,试试这个:

<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>

推荐阅读