Controller 获取前端数据

默认支持的类型

在controller的方法的形参中直接定义上面这些类型的参数,springmvc会自动绑定。
HttpServletRequest对象
HttpServletResponse对象
HttpSession对象
Model/ModelMap对象

简单类型的参数绑定

直接在controller中定义一个变量,但是此种传输方式有一个限制就是参数名和请求中的参数名必须保持一致,否则是接收不到数据的。
public String regist(Integer id){}

form-data

通过form-data的方式发送请求,参数是通过key-value的形式,在controller中通过@requestparam注解的 方式就可以取到值:

@RequestParam注解用来接收地址中的参数
@RequestParam(value = "name", required = false,defaultValue="aaa") String name

json

在发送数据时,data键的值一定要写成JSON.stringify(json),将数据转换成json格式

1、以RequestParam接收:@RequestParam ("id") int id    //@RequestParam注解用来接收地址中的参数

2、以实体类方式接收json对象:@RequestBody User user    //@RequestBody注解用来接收request的body中的参数(可以接收json格式的数据)

3、以Map接收json对象:@RequestBody Map<String, Object> map

4、以List接收:@RequestBody List<User> list

5、@PathVariable注解可以用一个模型来接收地址栏中的参数:public String getUserInfo(@PathVariable User user) {}

注:@RequestBody:将json数据转换成bean对象    @ResponseBody:将bean对象转换成json数据

请求路径参数 /url/{id}

url:http://localhost:8080/demo/123?name=ld
    @GetMapping("/demo/{id}")
    public void demo(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name) {
        System.out.println("id="+id);    //123
        System.out.println("name="+name);    //ld
    }
原文地址:https://www.cnblogs.com/loveer/p/11358417.html