简述Spring MVC中的ModelMap ?
ModelMap
是Spring MVC中的一个接口,它继承自java.util.LinkedHashMap
并实现了org.springframework.ui.Model
接口。ModelMap
主要用于存储模型数据,并将这些数据传递给视图进行渲染。
在Spring MVC中,当控制器(Controller)处理一个请求时,它通常会创建一个ModelMap
对象(或者直接使用方法参数中的Model
或Map
,它们在幕后通常也是由ModelMap
实例支持的),然后将需要在视图层显示的数据添加到这个ModelMap
对象中。这些数据可以是任何Java对象,它们将被视图(通常是JSP页面)用来动态生成HTML内容。
ModelMap
提供了一些便捷的方法来添加、获取和删除数据,比如addAttribute(String key, Object value)
用于添加数据,getAttribute(String key)
用于获取数据,removeAttribute(String key)
用于删除数据。这些方法使得在控制器和视图之间传递数据变得非常简单。
在控制器方法中,你可以这样使用ModelMap
:
@RequestMapping(value = "/example", method = RequestMethod.GET)
public String getExample(ModelMap model) {
model.addAttribute("message", "Hello, World!");
return "exampleView";
}
在这个例子中,message
属性被添加到ModelMap
中,并且其值为"Hello, World!"
。然后,这个ModelMap
被传递给名为exampleView
的视图进行渲染。在JSP视图中,你可以使用EL表达式${message}
来访问并显示这个属性的值。
需要注意的是,ModelMap
本身并不负责设置页面跳转的URL地址别名或者物理跳转地址。这些通常由控制器方法的返回值和Spring MVC的配置来确定。ModelMap
仅仅是一个用于存储和传递模型数据的容器。