初探SpringMVC
作者:互联网
初探SpringMVC
参照how2j的简单案例,使用注解方式
先创建ModelAndView对象,再通过它的方法去设置数据与转发的视图名
@RequestMapping("/hello")
public ModelAndView handleHelloRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView("hello");
mav.addObject("message", "Hello World");
return mav;
}
@RequestMapping("/hello")
:表示将访问/hello的请求交由使用该注解的handler方法(以下的handleHelloRequest)处理
ModelAndView mav = new ModelAndView("hello");
:来看看ModelAndView为何物
-
view:该属性用来储存返回的视图信息
-
ModelMap:LinkedHashMap的子类,储存键值对,主要用于传递控制方法处理数据到结果页面,类似于request对象的setAttribute方法的作用
-
HttpStatus:状态码,例如200-OK/404-NOT FOUND
-
cleared:判断是否被clear()方法清除了
//ModelAndView.class
public ModelMap getModelMap() {
if (this.model == null) {
this.model = new ModelMap();
}
return this.model;
}
public ModelAndView addObject(String attributeName, Object attributeValue) {
this.getModelMap().addAttribute(attributeName, attributeValue);
return this;
}
//ModelMap.class是LinkedHashMap的子类
public ModelMap addAttribute(String attributeName, Object attributeValue) {
Assert.notNull(attributeName, "Model attribute name must not be null");
this.put(attributeName, attributeValue);
return this;
}
新建一个ModelAndView对象后,一开始的getModelMap()获取的Model对象是空的,new一个之后才往里面塞数据
ModelAndView的用法主要有两种:
1.上面的用法,使用该对象然后设置数据与转发的视图名
setViewName(String viewName):设置此 ModelAndView 的视图名称, 由 DispatcherServlet 通过 ViewResolver 解析
addObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据
2.设置页面跳转
当InternalResourceViewResolver看到视图格式中的"redirect:"前缀时,就知道要将其解析为重定向规则,而不是视图的名称。除了"redirect:","forward:"也能被识别,请求将会前往指定的URL路径。
标签:attributeValue,SpringMVC,ModelMap,attributeName,视图,初探,ModelAndView,hello 来源: https://www.cnblogs.com/royapk/p/13914690.html