controller 是如何接受到前台定义的值的呢?
来源:7-4 新增部门、部门层级树、更新部门接口自测

uareRight
2018-11-19
@RequestMapping("/save.json")
@ResponseBody
public JsonData saveDept(DeptVo deptVo){
SysDeptService.save(deptVo);
return JsonData.success();
}
@Getter
@Setter
@ToString
public class DeptVo {
private Integer id;
@NotEmpty(message = “部门名称不能为空”)
@Length(max=15,min = 2,message = “部门名称需要在2~15字之前”)
private String name;
private Integer parentId = 0;//如果不传顶层菜单 默认是0
@NotNull(message = “顺序不能为空”)
private Integer seq;
@Length(max=150,message = “备注长度不能超过150”)
private String remark;
}
1回答
-
在 SpringMVC中,提交请求的数据是通过方法形参来接收的。从客户端请求的 key/value 数据,经过参数绑定,将 key/value 数据绑定到 Controller 的形参上,然后在 Controller 就可以直接使用该形参。
1、SpringMVC有支持的默认参数类型,我们直接在形参上给出这些默认类型的声明,就能直接使用了。HttpServletRequest、httpServletResponse、HttpSession、Model/ModelMap
2、基本数据类型、包装数据类型、String,将客户端请求中的 key/value 数据绑定到方法的形参上,方法形参名字要和key相同,如果不同可以使用@RequestParam注解。
3、POJO数据类型的绑定要保证请求数据中的key和POJO的属性名一致,比如表单中的name属性name = “username”和POJO的username一样,如果POJO中包含其他POJO,要实现参数的绑定,这时候name属性,name = “user.username” 其中user是一个POJO的属性,username是User的属性。如果POJO中有特殊类型,如日期类型,这时候需要用到springmvc的converter来实现类型转换,自定义类实现Converter接口,同时在springmvc.xml文件中配置转换器。
4、数组、list、map类型的绑定也是保证参数名字或者POJO中属性名字一致,只是这时候请求参数中的key可以有重复的,springmvc就可以绑定到对应的属性上。00
相似问题