1. 概述

在本文中,我们将介绍由弹簧MVC提供的核心组织弹簧框架组织弹簧框架。.

2. Maven依赖关系

让我们从pom.xml文件中的弹簧上下文依赖关系开始:

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.2.RELEASE</version>
</dependency>

可以在此处找到最新版本的弹簧上下文依赖项。

对于模型和视图弹簧网依赖关系是必需的:

<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.2.2.RELEASE</version>
</dependency>

最新版本的弹簧网依赖可以在这里找到。

而且,如果我们使用百里叶作为我们的观点,我们应该将这种依赖性添加到pom.xml:

<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf-spring5</artifactId><version>3.0.11.RELEASE</version>
</dependency>

最新版本的百里叶依赖可以在这里找到。

3. Model

让我们从最基本的概念开始 - 模型

简而言之,该模型可以提供用于呈现视图的属性。

若要提供包含可用数据的视图,我们只需将此数据添加到其 Model 对象中即可。此外,具有属性的映射可以与模型实例合并:

@GetMapping("/showViewPage")
public String passParametersWithModel(Model model) {Map<String, String> map = new HashMap<>();map.put("spring", "mvc");model.addAttribute("message", "Baeldung");model.mergeAttributes(map);return "viewPage";
}

4. ModelMap

就像上面的模型界面一样,模型映射也用于传递值来呈现视图。

ModelMap 的优点是它使我们能够传递一组值,并将这些值视为在 Map 中一样:

@GetMapping("/printViewPage")
public String passParametersWithModelMap(ModelMap map) {map.addAttribute("welcomeMessage", "welcome");map.addAttribute("message", "Baeldung");return "viewPage";
}

5. ModelAndView

将值传递到视图的最后一个接口是模型和视图

此接口允许我们在一次返回中传递Spring MVC所需的所有信息:

@GetMapping("/goToViewPage")
public ModelAndView passParametersWithModelAndView() {ModelAndView modelAndView = new ModelAndView("viewPage");modelAndView.addObject("message", "Baeldung");return modelAndView;
}

6. View

我们放置在这些模型中的所有数据都由视图使用 - 通常,模板化视图来呈现网页。

如果我们有一个以控制器的方法为目标的百里叶模板文件作为他们的视图。通过模型传递的参数可以从百里叶 HTML 代码中访问:

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Title</title>
</head>
<body><div>Web Application. Passed parameter : th:text="${message}"</div>
</body>
</html>Copy

此处传递的参数通过语法 ${message}(称为占位符)使用。Thymeleaf 模板引擎会将此占位符替换为通过模型传递的同名属性的实际值。

7. 结论

在这个快速教程中,我们讨论了春季MVC中的三个核心概念 - 模型模型映射模型和视图。我们还查看了视图如何利用这些值的示例。

与往常一样,所有这些示例和代码片段的实现都可以在Github上找到。

Spring MVC中的Model, ModelMap, 和ModelAndView相关推荐

  1. Spring mvc 中处理模型数据 ModelAndView

    Spring mvc 中处理模型数据  ModelAndView 原文: http://blog.csdn.net/jingyuan_/article/details/9625125 将模型数据暴露给 ...

  2. Spring MVC 中的基于注解的 Controller

    为什么80%的码农都做不了架构师?>>>    Spring MVC 中的基于注解的 Controller @Controller 基于注解的 Controller   终于来到了基 ...

  3. 在Spring MVC中使用Velocity

    在Spring MVC中使用Velocity – Part 1工程中配置velocity 目的 Spring MVC中结合velocity的配置和操作. 简介 我们要显示一个课程列表,需要如下的 Ja ...

  4. Spring 2.5:Spring MVC中的新特性

    转载说明:infoQ就是牛人多,看人家去年就把Spring2.5注视驱动的MVC写出来了,还是这么详细,我真是自叹不如,今天偶尔看到这篇文章非常认真的拜读了2遍,简直是茅厕顿开啊....\(^o^)/ ...

  5. Spring MVC中的二三事

    HandlerMapping和HandlerAdapter 这个两个组件应该算是spring mvc中最重要的几个组件之一了,当一个请求到达DispatcherSerlvet后,spring mvc就 ...

  6. Spring MVC中Session的正确用法之我见02

    Spring MVC中Session的正确用法之我见 Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置 ...

  7. spring mvc中两种异常的处理手法

    spring mvc中两种异常的处理手法 在spring mvc中,对异常的处理,可以小结有如下两类写法: 1 <bean id="exceptionResolver" cl ...

  8. Spring MVC中的视图解析ViewResolver

    http://blog.csdn.net/prince2270/article/details/5891085 在Spring MVC中,当Controller将请求处理结果放入到ModelAndVi ...

  9. Spring MVC中@Controller和@RequestMapping注解详解

    在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...

最新文章

  1. LeetCode简单题之递增顺序搜索树
  2. FASTQ! BAM! VCF
  3. Python 进阶_生成器 生成器表达式
  4. String 的普通构造函数、拷贝构造函数、析构函数、赋值函数
  5. 如何用python写脚本_【按键教程】用python写脚本 另附垫材24与变奏22的实现
  6. 多CPU,多核,多进程,多线程以及进程和线程的简单理解以及区别
  7. 函数式编程笔记 01
  8. 【英语学习】【Daily English】U07 Restaurant L01 What's a seafood paella, though?
  9. jsp中动态include与静态include的区别
  10. 03 入门 - 安装MVC 5和创建应用程序
  11. C++之调用C的so
  12. windows系统bat批处理 一键添加共享打印机
  13. 栈Stack的相关操作(java)
  14. 漫谈 Clustering (番外篇): Vector Quantization
  15. 微型计算机控制技术第三版第四章课后答案,微型计算机控制技术第4章习题答案.doc...
  16. SDN技术的发展应用任重而道远
  17. 项目版本更新,浏览器缓存问题解决方案
  18. html网页直播实时聊天,一分钟实现网页多人聊天室【Socket.IO】
  19. 互联网史话----十亿美金之51
  20. 羽毛球·印尼赛 | 国羽男双新高塔组合惊喜进决赛

热门文章

  1. 焦虑症是精神病吗?缓解焦虑症的方法有哪些
  2. 樊登读书搞定读后感_《读懂一本书:樊登读书法》读后感2
  3. JAVA泡泡堂网络游戏的设计与实现
  4. 胜利大逃亡(BFS)
  5. 《利用python进行数据分析》第二版 第13章-Python建模库介 学习笔记
  6. 快手之家(aardio.net) - 感谢信
  7. XMind基础教程-主题篇
  8. android手机图片质量,安卓手机对比iOS照片在微信分享时,竟大幅深压缩画质?...
  9. java 接收 char字符型
  10. android EditText 设置弹出数字输入法键盘