SpringMVC入参多类型如何进行绑定 5C
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字符串和后台如何获取参数

8个回答

@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包)
ajax传值
后台解析

springMVC在前后台参数名和顺序一致时 不需要(因为没必要)@RequestParam 注解,参数的顺序不一致时,可以使用@RequestParam 注解来绑定

图片说明
图片说明

@ModelAttribute, 如果注解没有指定值,前端定义字段参数名和 该实体类里的属性名一致就行,如果指定了,就按照 值.属性名。
@requestparam, 如果是数组,前端传递数组参数就行了, 名字和注解的名称一致。比如:@RequestParam("deptIdes[]") 前端参数名称为deptIdes

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问