忘记你现在做了什么。
处理程序方法有两种@Controller方法可以使 JSP 可以使用属性。
- 使您的方法接受
HttpServletRequest参数并将目标对象直接设置为请求属性。
- 让您的方法接受
Model、ModelMap、ModelAndView或Map参数,并将目标对象设置为该参数的请求属性Model。您还可以让您的方法返回上述任何内容。
对于2.,Spring 会将你添加到的元素Model放入HttpServletRequest属性中。然后它们将在呈现 JSP 时可用。
让我们举几个例子:
返回ModelAndView具有一个属性的
public ModelAndView inputRequiredInfo() {
Map map = newRequest.loadAllUserDomainType();
return new ModelAndView("request/selectDomainUser","mylist", map);
}
返回ModelAndView没有属性的a,但直接将属性添加到HttpServletRequest
public ModelAndView inputRequiredInfo(HttpServletRequest request) {
Map map = newRequest.loadAllUserDomainType();
request.setAttribute("mylist", map);
return new ModelAndView("request/selectDomainUser");
}
返回String视图名称,但将属性添加到Model作为参数传递的参数
public String inputRequiredInfo(Model model) {
Map map = newRequest.loadAllUserDomainType();
model.addAttribute("mylist", map);
return "request/selectDomainUser";
}
在上面的示例中,您可以通过Model、ModelMap或java.util.Map。
相同但与HttpServletRequest
public String inputRequiredInfo(HttpServletRequest request) {
Map map = newRequest.loadAllUserDomainType();
request.setAttribute("mylist", map);
return "request/selectDomainUser";
}
有关接受的方法参数的更完整列表,请参阅官方文档的第 17.3.3 节。ModelAndView当您使用它时,还请阅读支持的返回类型以了解返回 a和返回 a之间的区别String。