SpringMVC的八种收取参数的方式

第一种收取参数方式:数据类型收取参数
//第一种收取参数的方式:数据类型收取参数
    @RequestMapping("/reg")
    @ResponseBody  //这个注解的意思是 返回给前端的json数据
    public Map reg(String adminName, String adminPwd, String adminPwdR) {
        System.out.println("adminName = " + adminName);
        System.out.println("adminPwd = " + adminPwd);
        System.out.println("adminPwdR = " + adminPwdR);
        Map codeMap = new HashMap();
        if (!adminPwd.equals(adminPwdR)) {
            codeMap.put("code", "4001");
            codeMap.put("msg", "你输入的密码和重复密码不一致,注册失败");
            return codeMap;
        }
        if (adminName.length()<=0) {
            codeMap.put("code", "4402");
            codeMap.put("msg", "adminName表单填写完整");
            return codeMap;
        }
        if (adminPwd.length()<=0){
            codeMap.put("code", "4402");
            codeMap.put("msg", "adminPwd表单填写完整");
            return codeMap;
        }
        codeMap.put("code", 0);
        codeMap.put("msg", "注册成功");
        return codeMap;
    }

第二种收取参数的方式:实体类收取参数(传参)


    //第二种收取参数的方式叫做:实体类收取参数(传参)
    @RequestMapping("/regByBean")
    public Map regByBean(AdminInfo adminInfo){
        System.out.println("adminInfo = " + adminInfo);
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "注册成功");
        return codeMap;
    }

第三种收取参数的方式:ajax 收取数组/集合

 //第三种收取参数的方式:ajax 收取数组/集合
    @RequestMapping("/ajax03")
    @ResponseBody
    public Map ajax03(@RequestParam("ids[]") List ids){  //前端 ids[] 后台ids
        //当前后端的参数不一致时,需要注解进行调整
        for (Integer id : ids) {
            System.out.println("id = " + id);
        }
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "注册成功");
        codeMap.put("data", ids);
        return codeMap;
    }
第四种收取参数的方式:ajax 接收json数据
@RequestMapping("/ajax04")
    @ResponseBody
    public Map ajax04(@RequestBody  AdminInfo adminInfo){   //@RequestBody 注解就是指的是 前端用json请求
        System.out.println("adminInfo = " + adminInfo);
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "请求访问成功");
        codeMap.put("data", adminInfo);
        return codeMap;
    }

第五种收取参数的方式:接收前端传来的多个对象

@RequestMapping("/ajax05")
    @ResponseBody
    public Map ajax05(@ModelAttribute Lover lover, @ModelAttribute Dog dog){  //ModelAttribute 模型绑定
        System.out.println("lover = " + lover);
        System.out.println("dog = " + dog);
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "请求访问成功");
        codeMap.put("data1", lover);
        codeMap.put("data2", dog);
        return codeMap;
    }

第六种收取参数的方式:json 收取多个对象

//@GetMapping("/ajax06")
    @RequestMapping("/ajax06")
    @ResponseBody     //@GetMapping 不能和 @ResponseBody 同时使用,无法拿到参数
    public Map ajax06(@RequestBody List loverList){  //@RequestBody 他是方法体中拿取的数据,所以不能使用Get请求!!
        for (Lover lover : loverList) {
            System.out.println("lover = " + lover);
        }
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "请求访问成功");
        codeMap.put("data", loverList);
        return codeMap;
    }

第七种收取参数的方式:收取map集合传参

@RequestMapping("/ajax07")
    @ResponseBody    //十分常用,servlet 多表的动态参数获取,就是用的map  可以搞定一切!!!
    public Map ajax07(@RequestBody Map map){
        System.out.println("map的adminName = " + map.get("adminName"));
        Map codeMap = new HashMap();
        codeMap.put("code", 0);
        codeMap.put("msg", "请求访问成功");
        codeMap.put("data", map);
        return codeMap;
    }

第八种收取参数的方式:收取对象+常用类型 混合

@RequestMapping("/ajax08")
    @ResponseBody
    public Map ajax08(Lover lover, @RequestParam(value = "limit", required = false, defaultValue = "5") Integer pageSize, Integer page){  //@RequestParam 默认  defaultValue = "5" 5页  required = false 为false时参数可带可不带
        System.out.println("lover = " + lover);
        System.out.println("page = " + page);
        System.out.println("pageSize = " + pageSize);
        return null;
    }

你可能感兴趣的:(java)