springmvc获取请求参数,获取get,post请求参数,获取form表单提交,获取json格式数据,获取list格式数据,获取自定义类型参数等等。

注意content-type和请求类型:

  1. 首先获取参数要注意请求的content-type,
  2. post请求和get请求获取参数也是有区别的,post请求参数可以在请求体

spring常用获取参数的注解

  1. @RequestParam,获取请求中query的参数
  2. @RequestBody,获取post请求体中的数据
  3. @PathVariable,获取path中的参数
  4. @ModelAttribute,获取表单中的对象
  5. 使用Bean接收(自定义bean)

Content-Type: application/x-www-form-urlencoded(默认)

get/post请求query参数

http://localhost:8080/test?userName=mmm&age=123

    @GetMapping("/query")
    @ResponseBody
    public String query(@RequestParam String userName,
                        @RequestParam int age) {
        return userName + "::" + age;
    }

get/post请求中的list

http://localhost:8080/test?userList=aaa,bbb,ccc

    @PostMapping("/queryList")
    @ResponseBody
    public String queryListByPost(@RequestParam List<String> userList){
        return JSONObject.toJSONString(userList);
    }

获取path中的参数(不区分content-type)

http://localhost:8080/test?name=aaa

    @PostMapping("/queryList/{name}")
    @ResponseBody
    public String queryListByPost(@PathVariable String name) {
        return JSONObject.toJSONString(name);
    }

获取表单提交的mode数据

http://localhost:8080/test
数据:name=aaa&age=123

    @PostMapping("/queryMode")
    @ResponseBody
    public String queryModeByPost(@ModelAttribute MyUser user) {
        return JSONObject.toJSONString(user);
    }

Content-Type: application/json

获取post请求参数

POST localhost:8080/api/queryjson1
Content-Type: application/json

{
    "name":"maocg",
    "age":123
}
    @PostMapping("/queryjson")
    @ResponseBody
    public String queryJsonByPost(@RequestBody MyUser user) {
        return JSONObject.toJSONString(user);
    }

发表评论

电子邮件地址不会被公开。 必填项已用*标注