1.接收基本数据类型
只需要在形参中声明跟要传过来的参数对应的变量就行了
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据现在数据可以拿进来了,但是如果把id换成ids就会报错
SprinMVC框架05——接收请求数据报错信息显示int类型参数id不能给它一个空值,也就是说我在controller里面声明了一个int类型的id,但是在这里又没有传一个id过去,从request作用域里面取出来就是null值给id,类型不匹配就会报错,因此要使用Integer包装类,它可以接收null的情况
SprinMVC框架05——接收请求数据
SprinMVC框架05——接收请求数据
SprinMVC框架05——接收请求数据
这样就可以接收null了,所以在接收基本数据类型的时候,用包装类会更好一些。
但是还有一种情况就是controller里面是id,前端却是ids,参数来的名称不匹配,怎么办呢?在它们之间要建立一个映射,使用注解@RequestParam(name=“ids”),让id形参和传递过来的实参ids匹配,这样可以防止实参和形参不一致的情况SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据
@RequestParam(name=“name”,required=true)表示它是必须的,false表示不是必须的
SprinMVC框架05——接收请求数据设置为true之后,如果不传name过来就会报错
SprinMVC框架05——接收请求数据加一个name就可以了
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据那么当一个参数是必传的时候可以设置为true,当一个参数不是必传的时候,可以设置为false,还可以给它一个默认值,如果没有传数据过来,就会使用默认值替代
SprinMVC框架05——接收请求数据当传了过来的时候,就使用传过来的数据SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据如果没有传过来,就使用默认值
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据
2.自定义对象
这是我们在接收单个数据的时候可以这么去做,这种方式在参数比较少的时候还挺实用,但是如果要做一个注册功能,要传几十个字段,在方法里写几十个参数就会非常麻烦,因此我们可以把这些数据保存到一个java对象里面去,创建一个user类
SprinMVC框架05——接收请求数据
数据接收成功
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据只要传递过来的实际参数名和java对象中的属性名保持一直,就能自动接收到Java对象中
SprinMVC框架05——接收请求数据那么当一个Java类中不止基本数据类型,还有其他的对象类型的时候呢?当user对象中有一个属性为book对象时
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据
user.jsp页面
SprinMVC框架05——接收请求数据SprinMVC框架05——接收请求数据数据接收成功
SprinMVC框架05——接收请求数据另外补充:@RequestMapping注解
1.使用在类头部:窄化请求,在类的头部可以省略 ,如果省略了,那么在其他的controller里面就不能叫这个controller里的方法头部用过的路径名
2.在方法的头部默认值是@RequestMapping("/h4"),但是如果要配置多个参数,就要加上name,@RequestMapping(name="/h4",method=RequestMethod.POST)表示本方法,只能处理以POST方式提交的请求,可以用于限制用户提交的方式SprinMVC框架05——接收请求数据
有一个等价的写法@GetMapping("/h3") 等价于@RequestMapping(name="/h4",method=RequestMethod.GET)
SprinMVC框架05——接收请求数据

相关文章: