【问题标题】:Creating Quiz (Quastionare) using Spring MVC + JSP使用 Spring MVC + JSP 创建测验(Quastionare)
【发布时间】:2017-03-04 07:53:37
【问题描述】:

我需要你的帮助。没有你的帮助,我的大脑会爆炸!我正在 Spring MVC + JSP 上编写测验应用程序。

我现在做了什么: 1.我创建了HashMap +硬编码正确答案。 2.我创建了@RequestMapping(value = "/level_one", method = RequestMethod.POST) public String levelOne() { return "levelone"; }

应该如何: pics

然后我就僵住了,我不知道该做什么以及如何将@RequestMaping 中的这段代码与HashMap 结合起来,并在jsp 中编写代码以使其可见和可点击??? 在控制器中我写道:

 package ua.kiev.prog;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.HashMap;
import java.util.Map;


@Controller
@RequestMapping("/")
public class MyController {

       final private String rightAnswerOne = "Dance";

    @ModelAttribute("answerList")
    public Map answerList() {
        Map<String, String> answerList = new HashMap<String, String>();
        answerList.put("one", "Sandbox");
        answerList.put("two", "Pixel");
        answerList.put("three", "Game");
        answerList.put("four", "Picture");

        return answerList;
    }


    @RequestMapping(value = "/level_one", method = RequestMethod.POST)
    public String levelOne() {
        return "levelone";
    }


}

【问题讨论】:

    标签: java spring jsp spring-mvc model-view-controller


    【解决方案1】:

    @modelAttribute 在请求映射之前执行。这会填充 Model 模型对象(您没有将其作为参数传递给使用 @requestmapping 注释的方法。

    您可以使用 model.asMap().Get("yourkey"). 访问该对象

    @RequestMapping(value = "/level_one", method = RequestMethod.POST) public String levelOne(Model model) { 
    

    model.asMap().get("answerList"); ... 返回“一级”; }

    这就是模型属性的工作方式,但这是一个很长的论点。你可能会搜索一些关于 spring MVC 的教程。 我推荐谷歌 mkyong spring mvc,他有大量的 spring mvc 基础教程,简单易懂。

    检查此链接 http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/

    【讨论】:

      【解决方案2】:

      谢谢你,我会做的。但在这个例子中,请再回答一个问题。如果我像你之前写的那样写代码。我应该如何编写 jsp 页面,以统一控制器和 Web 视图中哈希映射的答案?因此,如果我单击网络上的按钮,它将与服务器端页面上的哈希图结合在一起。 那么我就可以写这样的东西了:

       public static int getCount(HashMap<String, String> answerList, String rightAnswerOne, String rightAnswerTwo, String message) {
          int count = 0;
      
          for (String tmp : answerList.values()) {
              if (rightAnswerOne.equals(tmp) ) {
                  count++;
                  System.out.println("SUCCESS");
              } else {
                  System.out.println("DENIED");
              }
          }
          return count;
      }
      

      我只是想了解如何编写这样的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-26
        • 2018-08-02
        • 1970-01-01
        • 2014-12-17
        • 2014-08-05
        • 1970-01-01
        • 1970-01-01
        • 2013-10-05
        相关资源
        最近更新 更多