Json参数
Json格式的数据具有轻量级、易于阅读和编写、易于解析等诸多优点。在前后端交互时,大部分情况下请求体中的数据会以JSON格式进行传递。前端的请求在请求体中携带了Json格式数据,后端程序需要对其进行解析并封装使用,而接收Json参数一般是用实体对象进行接收的:方法型参是一个实体对象,该对象中的属性名必须和Json数据中的键名相同,并且需要在该形参前使用@RequestBody注解使得Json数据能够解析并填充到该对象中。
请求参数(在请求体中定义了Json数据作为请求参数):
接收方法:
@RequestMapping("Json")
public String getJsonParameter(@RequestBody TestUser user) {System.out.println(user);return "Json数据接收成功" + user;
}
接收Json数据的实体类:
、
据的键,设置对应的属性进行接收,并通过@RequestBody注解将Json数据填充到用于接收Json参数的TestUser对象中去,这时该user对象就获得了前端请求的Json参数中的所有数据。注意:用于接收Json数据的实体类中的属性必须和Json数据的键名完全相同,不然无法填充;必须在方法形参前面使用@RequestBody参数,否则也无法填充(因为不知道要将Json数据填充到那个对象中去)。
一切都设置正确之后,运行服务,进行请求,发现后端程序成功获取Json数据:
路径参数
路径参数:通过请求URL直接传递参数,参数已经成为了URL中的一部分(比如:http://localhost:8080/path/1 ) ,但同时参数也是给服务端传递的参数。路径参数常见于Restful风格(开发规范:Restful风格REST(REpresentational State Transfer),表述性状态转换, - 掘金)的请求中。接收路径参数,需要在方法的@RequestMapping的路径中使用{...}来标识该路径参数(指定路径参数的参数名),并且在形参中使用@PathVariable注解来获取路径参数。并且方法的形参名必须和{...}标识的路径参数(路径参数名)保持一致。
@RequestMapping("/path/{id}")
public String getPathParameter(@PathVariable int id) {System.out.println("成功获取路径参数:" + id);return "successful";
}
该方法通过@RequestMapping路径中的{id}将路径参数名标识为id,然后通过@PathVariable参数给形参id获取到了路径参数,形参名和标识的路径参数名必须相同,否则获取失败。
注意:需要在@RequestMapping中通过{...}指定路径参数,并且要在方法形参中使用@PathVariable注解获取路径参数,形参名必须和路径参数名相同,否则将无法获取;并且必须使用@PathVariable注解,否则也无法获取。
获取多个路径参数
获取多个路径参数的原理和获取单个路径参数基本一致,只是需要根据请求的路径参数个数在@RequestMapping中指定多个路径参数;并且在形参中用@PathVariable注解获取多个路径参数,注意:形参的列表中形参的顺序就是路径参数的顺序:
@RequestMapping("/path/{id}/{name}")
public String getManyPathParameter(@PathVariable int id, @PathVariable String name) {System.out.println("成功获取多个路径参数:" + id + " " + name);return "successful";
}
该方法在@RequestMapping中指定了两个路径参数id和name,并且在形参列表中通过@PathVariable按照顺序获取了这两个路径参数。