本文主要内容:SpringMVC执行流程、请求参数的绑定、SpringMVC常用请求注解
SpringMVC的执行流程
请求参数的绑定
-
请求参数的绑定说明
1.绑定机制
1.表单提交的数据都是k=v格式的 username=zhangsan&password=123
2.SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的
3.要求:提交表单的name和参数的名称是相同的
2.支持的数据类型
1.基本数据类型和字符串类型
2.实体类型(JavaBean)
3.集合数据类型(List、map集合等) -
基本数据类型和字符串类型
1.提交表单的name和参数的名称是相同的
2.区分大小写 -
实体类型(JavaBean)
1.提交表单的name和JavaBean中的属性名称需要一致
2.如果一个JavaBean类中包含其他的引用类型,那么表单的name属性需要编写成:对象.属性 例如:address.name -
集合属性数据封装
提交表单的name属性为list[0].属性 -
请求参数中文乱码的解决(在web.xml中配置)
characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 characterEncodingFilter /* -
自定义类型转换器
1.表单提交的任何数据类型全部都是字符串类型,但是后台定义Integer类型,数据也可以封装上,说明Spring框架内部会默认进行数据类型转换
2.如果想自定义数据类型转换,可以实现Converter的接口
3.注册自定义类型转换器,在springmvc.xml配置文件中编写配置
<mvc:annotation-driven conversion-service=“conversionService”/> -
在控制器中使用原生的ServletAPI对象
只需要在控制器的方法参数定义HttpServletRequest和HttpServletResponse对象
Spring常用请求注解
- RequestMapping注解
作用: RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
属性:
①.path:指定请求路径的url
②.value:value属性和path属性是一样的
③.mthod:指定该方法的请求方式 - RequestParam注解
作用:把请求中的指定名称的参数传递给控制器中的形参赋值
属性:
①.value:请求参数中的名称
②.required:请求参数中是否必须提供此参数,默认值是true,必须提供
代码展示:
- RequestBody注解(获取所有参数)
作用:用于获取请求体的内容(注意:get方法不可以)
属性:
①.required:请求参数中是否必须提供此参数,默认值是true
代码展示:
- PathVariable注解
作用:用于获取绑定url中的占位符的参数,例如:url中有/delete/{id},{id}就是占位符
属性:
①.value:指定url中的占位符名称
代码展示:
- SessionAttributes注解
作用:用于多次执行控制器方法间的参数共享
属性:
①.value:指定存入属性的名称
代码展示:
- ModelAttribute注解
作用:
1.出现在方法上:表示当前方法会在控制器方法执行前先执行
2.出现在参数上:获取指定的数据给参数赋值
应用场景:
当提交表单数据不是完整的实体数据时,保证没有提交的字段使用数据库原来的数据
代码展示: