public R save(
@RequestParam("menuIdes[]") List<String> menuIdes,
@RequestParam("deptIdes[]") List<String> deptIdes,
@ModelAttribute("role") SysRoleEntity role){
sysRoleService.save(role);
return R.ok();
}
我在后台获取不到list集合和role对象,请问前台如何组织json字符串和后台如何获取参数
@RequestParam是前端与后端名称不一样时使用,如果一样就跟参数写的一样就行,不能写那个数组格式,你的menuIdes和deptIdes前端用逗号分割
后端用数组接收就可以,例如前端“menuIdes=1,2,3”后端用String[] menuIdes接收就可以,role对象前端name对应role里边的属性就可以接收
多个参数时可以将其封装成一个参数填充,逗号填充可以,还可以使用下标索引的方式
List好像只能QueryVo 里边定义List
直接用map接受,或者用阿里的jsonObject接收
public R save(
@RequestBody JsonObject jsonData){
jsonData.get..
return R.ok();
}
遇到过你这样的问题,你的控制器里参数写的是:menuIdes[],前台提交表单时参数名称也要是:“menuIdes[]”,否则参数不匹配
可以把多类型用逗号隔开,变成一个参数传到后台在解析
前后台传值问题,
一般我用ajax和后台交互,传数组或者map键值对时,我一般用json2.js的序列化方法转成json字符串作为传参(需要引入json2.js文件),后台用string接收,再用fastjson的jsonArray或者jsonObject解析(需要引入fastjson.jar的jar包)
springMVC在前后台参数名和顺序一致时 不需要(因为没必要)@RequestParam 注解,参数的顺序不一致时,可以使用@RequestParam 注解来绑定
@ModelAttribute, 如果注解没有指定值,前端定义字段参数名和 该实体类里的属性名一致就行,如果指定了,就按照 值.属性名。
@requestparam, 如果是数组,前端传递数组参数就行了, 名字和注解的名称一致。比如:@RequestParam("deptIdes[]") 前端参数名称为deptIdes