我需要你的帮助。没有你的帮助,我的大脑会爆炸!我正在Spring MVC + JSP上编写Quiz应用程序。
我现在做了什么:
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";
}
}
答案 0 :(得分:0)
@modelAttribute在请求映射之前执行。填充Model模型对象(您没有作为参数传递给使用@requestmapping注释的方法。
您可以使用model.asMap().Get("yourkey").
@RequestMapping(value = "/level_one", method = RequestMethod.POST) public String levelOne(Model model) {
。model.asMap()得到( “answerList”); ... 返回“levelone”; }
这就是modelattribute的工作方式,但这是一个很长的论点。你可以搜索关于spring MVC的一些教程。 我向Google mkyong spring mvc推荐,他有一套庞大的spring mvc基础教程,易于理解。
检查此链接 http://www.mkyong.com/spring3/spring-3-mvc-hello-world-example/
答案 1 :(得分:0)
谢谢。我会的。但在这个例子中,请回答另一个问题。如果我像你之前写的那样编写代码。我应该如何编写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;
}
我只是想了解如何写这样的东西。