博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC工作原理
阅读量:7192 次
发布时间:2019-06-29

本文共 1695 字,大约阅读时间需要 5 分钟。

总体流程图如下:

在这里插入图片描述
各个组件或者说模块间是通过DispatcherServlet交互的.
在这里插入图片描述

@GetMapping时组合注解,@RequestMapping(method =RequestMethod.GET)的缩写

类似的还有@PostMapping等。默认是使用Get方法

传入的参数体现在控制器类中的具体方法的入参;如

public String getNameById(@RequestParam("id") int id ){	//todo	}

这就从页面传递了id到控制器

@RequestParam( ) 中有name、value、required等,默认不填

Model和ModelMap

SpringMVC内部使用org.springframework.ui.Model接口存储数据模型,他的功能类似util.Map。org.springframework.ui.ModelMap实现Map接口,SpringMVC在调用方法前会创建一个隐含的数据模型,作为模型数据的存储容器,如果处理方法的入参为Map或Model类,SpringMVC会将隐含的引用传递给Map或Model,这样就可以在Map或Model模型中访问所有的数据,可以向模型中添加数据。

@RequestMapping("/addBuniness")	public String addBuniness(Map
> map){ List
em = employeeService.getEmployees(); map.put("employee", em); return "/business/handleBusiness"; }

上面就会添加从getEmployees方法获取的employee数组,存入模型,在渲染视图的时候会显示出来

如果使用Model

@ModelAttributepublic void addEm(Model model){		model.addAttribute("employee", em);}@RequestMapping("/addBuniness")	public String addBuniness(Model model,ModelMap modelMap ,Map map){		return "/business/handleBusiness";	}上面也可以不用addEm方法,直接@RequestMapping("/addBuniness")	public String addBuniness(Model model,ModelMap modelMap ,Map map){		model.addAttribute("employee", em);		return "/business/handleBusiness";	}

@ModelAttribute注解先执行addEm

addBusiness方法中Model和ModelMap 以及Map三个对象都已获取到addEm添加的值。

另外还可以使用ModelAndView处理

@RequestMapping("/addBuniness")	public String addBuniness(Map
> map){ ModelAndView mv = new ModelAndView(); List
em = employeeService.getEmployees(); mv.addObject("employee", em); mv.setViewName("/business/handleBusiness") return mv; }

是与上面代码一样的作用。

除了Map Model和RequestParam还有很多别的入参,这个用什么查什么把。

转载于:https://www.cnblogs.com/xiatom/p/10784900.html

你可能感兴趣的文章
解决TIME_WAIT过多造成的问题
查看>>
mysql 主从同步故障解决 Error 'Row size too large (> 8126).
查看>>
16位纯数字MD5
查看>>
腾讯面试
查看>>
数据备份就用多备份
查看>>
企业如何进行IT基础设施规划
查看>>
我的友情链接
查看>>
iOS面试题第一波
查看>>
在centos中安装puppet和安装过程的一些错误解决
查看>>
html元素
查看>>
使用kaptcha生成验证码
查看>>
Maven学习总结(四)——Maven核心概念
查看>>
python 连接mongodb ,并将EXCEL文档导入mongodb
查看>>
第三节 在shell脚本中进行for循环
查看>>
Java Script 中定义对象的几种方式
查看>>
mysql编译安装完成后,启动时报错The server quit without updating PID file
查看>>
MySQL 错误总结续
查看>>
Nginx并发连接限制
查看>>
BGP的状态
查看>>
javascript声明二维数组
查看>>