关于spring mvc ModelMap的澄清

时间:2014-09-09 05:12:11

标签: spring spring-mvc

public String addStudent( @ModelAttribute("HelloWeb")Student student, ModelMap model){
}

有人可以解释一下这是如何工作的?

ModelMap model的用途是什么?

2 个答案:

答案 0 :(得分:4)

ModelMap子类LinkedHashMap

public class ModelMap extends LinkedHashMap{

}

Model是一个界面。 ModelMapModel interface的实现。

基本上,当您在代码中包含数据并且希望将这些数据用于呈现jsp页面时,您需要将该数据放在某个位置以使其可用。这就是Model的用途。保存您在代码中检索到的数据。这只是一张美化的地图。

例如,我有一个带有数据支持对象的表单。表单有三个下拉菜单,我还需要数据来填充下拉菜单。那是4个不同的对象。 3下拉列表和表单后备对象的一个​​对象。 如果我的代码获取了所有这些数据,我会将它们放入Model的地图中,现在我可以在我的jsp页面上使用它们。

请参阅this了解详情。

还可以参考here了解详细信息。

答案 1 :(得分:3)

Web应用程序中遵循的体系结构模式是MVC,它代表模型,视图和控制器。 模型保存数据。 View是您的显示器,Controller控制流程。

模型通常是一个可以在屏幕上呈现的简单对象。例如,简单的更新用户首选项将保存可以包含在称为用户的域或模型对象中的数据。

但是,当视图和交互变得复杂时,一个简单的对象可能就不够了。并且需要复杂的对象。这个有点复杂的对象包含一些其他对象。例如,像用户的新闻Feed仪表板这样的页面可能必须保存有关的数据;

  1. 某些用户对象中保存的用户(名称等)
  2. 用户首选项对象中保存的用户首选项,而用户首选项对象又可以是用户的一部分
  3. 其他一些对象 - 可能不太适合包含在用户对象本身中。
  4. 基本上,所有这些对象都可能使模型有些复杂。因此,为了更好地组织,这些可以存储为名称值对并打包在单个Map中。因此页面可以引用所需的键并获取它需要呈现的对象。

    ModelMap就是这种容器对象