忘记你现在做了什么。
处理程序方法有两种@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
。