【问题标题】:For each loop in JSTL from another file对于来自另一个文件的 JSTL 中的每个循环
【发布时间】:2014-11-07 16:38:30
【问题描述】:

我想要一种方法,让用户回答一系列问题,然后在最后告诉他们他们的分数。

到目前为止,我已经得到了这个

许多.jsps,每个问题都写在里面。每个页面都有一个下一步按钮,将他们带到下一个问题。最后一个问题链接到一个名为 results.jsp 的页面,需要在该页面确定他们是否给出正确或错误的答案,然后告诉他们他们的分数。

这是 qOne.jsp

<form action="/HelloSpring/results" method="post">

    <p> What is the correct wrapper class for the primitive int? </p>
    <input type="radio" name="radios" value="Int">Int<br>
    <input type="radio" name="radios" value="Enum">Enum<br>
    <input type="radio" name="radios" value="integer1">integer<br>
    <input type="radio" name="radios" value="Integer2">Integer<br>
    <input type="text" name="elc" autocomplete="off" >name<br>
             <input type="submit" value="Next" >

</form>
<FORM><INPUT Type="button" VALUE="Back" onClick="history.go(-1);return true;"></FORM>

</body>
</html>

单击后,您将进入 results.jsp

<body>
<h2>Result</h2>

<p>Good day ${elc}, you scored ${a} </p>

<c:forEach items="${results}" var="total" >
    ${total};
    ${Score};
    ${score};
</c:forEach>

<section>
<p>Total score: ${total}</p>
</section>

</body>
</html>

这是 WebController.java 文件,它应该处理最后一个问题的结果(如上所示)。它运行一个 if 语句,然后根据哪个 if “运行”,它会将 0 或 1 添加到 hashmap。在某个时候,我将打印出哈希图的总和以显示他们的分数,并添加其他问题的请求映射。我只想让第一个工作。

 @RequestMapping(value = "/results", method = RequestMethod.POST)
        public String results(Model model, HttpSession session, HttpServletRequest request, @RequestParam String elc) {

                Object map2 = session.getAttribute("map");
                HashMap<String, Integer> map = (HashMap<String, Integer>) map2;

                request.getSession().setAttribute("score", "total");

                if(request.getParameter("radios") != null) {
                if(request.getParameter("radios").equals("Int")) {
                    model.addAttribute("Score", 0);
                    System.out.println("Int selected as your answer");
                }
                else if(request.getParameter("radios").equals("Enum")) {
                    model.addAttribute("Score", 0);
                    System.out.println("Enum selected as your answer");
                }
                else if(request.getParameter("radios").equals("integer1")) {
                    model.addAttribute("Score", 0);
                    System.out.println("integer was selected as your answer");
                }
                else {
                    System.out.println("Integer was selected as your answer");
                    model.addAttribute("Score", 1);
                }

            }
                   return "results";
        }

【问题讨论】:

    标签: java spring jsp jstl el


    【解决方案1】:

    这里没有真正的问题,但如果你想这样做,我建议你在向导上以http://www.jquery-steps.com/Examples 的身份在前端完成所有问题。

    如果你在前端做一个向导,你只需要在控制器中检查最后的所有问题并将结果发送到另一个jsp。 如果您不想拥有更大的 question.jsp 文件,您仍然可以保留您的 jsp 并将其包含在每个向导部分中。

    在这种情况下,下一个和上一个按钮将很容易。分数计算也很容易。

    【讨论】:

      猜你喜欢
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 2014-05-04
      • 2019-01-24
      相关资源
      最近更新 更多