springboot前后端参数传递方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
springboot前后端参数传递⽅式使⽤spring boot2X做后端,postman做前端测试
1.获取json字符串
@RestController
public class Demo {
@RequestMapping("test")
public Result test(@RequestBody JSONObject obj) {
return Result.success(200,obj);
}
}
测试
2.获取出传⼊的参数值
@RestController
public class Demo {
@RequestMapping("test")
public Result test(@RequestParam(value = "name",required = false) String name,@RequestParam(value = "id") Integer id) { MyData my = new MyData();
my.setId(id);
my.setName(name);
return Result.success(200,my);
}
}
测试
3.获取路径中的参数值
(1)通过PathVariable注解来绑定请求路径的参数
@RestController
public class Demo {
@RequestMapping(value = "/test/{id}/{name}")
public Result test(@PathVariable(value = "id") Integer id, @PathVariable(value = "name") String name) { MyData my = new MyData();
my.setId(id);
my.setName(name);
return Result.success(200,my);
}
}
测试
(2)指定前端url请求参数名称与⽅法名⼀致
@RestController
public class Demo {
@RequestMapping(value = "test")
public Result test(Integer id,String name) {
MyData my = new MyData();
my.setId(id);
my.setName(name);
return Result.success(200,my);
}
}
(3)通过HttpServletRequest来获取前端页⾯参数@RestController
public class Demo {
@RequestMapping(value = "test")
public Result test(HttpServletRequest request) {
MyData my = new MyData();
my.setId(Integer.valueOf(request.getParameter("id"))); my.setName(request.getParameter("name"));
return Result.success(200,my);
}
}
(4)通过RequestParam注解来获取
@RestController
public class Demo {
@RequestMapping(value = "test")
public Result test(@RequestParam(defaultValue = "0") Integer id,@RequestParam(defaultValue = "0")String name) {
MyData my = new MyData();
my.setId(id);
my.setName(name);
return Result.success(200,my);
}
}
4.获取请求的报⽂头
@RestController
public class Demo {
@RequestMapping(value = "test")
public Result test(@RequestHeader Map<String, String> map) {
return Result.success(200,map);
}
}
5.请求中的cookie
@RestController
public class Demo {
@RequestMapping(value = "test")
public Result test(@CookieValue(value = "JSESSIONID", required = true) String jsessionId,@CookieValue(value = "name", required = true) String name) {
return Result.success(200,"JSESSIONID="+jsessionId+",name="+name);
}
}
5.获取矩阵变量绑定的参数
矩阵变量
矩阵变量可以出现在任何路径⽚段中,每⼀个矩阵变量都⽤分号(;)隔开,多个值可以⽤逗号隔开
Spring4.0已经全⾯⽀持Matrix Variable,该注解似的开发⼈员能够将请求中的矩阵变量绑定到处理器的⽅法参数中spring boot 默认是⽆法使⽤矩阵变量绑定参数的。
需要覆盖WebMvcConfigurer中的configurePathMatch⽅法package com.example.demo.core;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;
import org.springframework.web.util.UrlPathHelper;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
UrlPathHelper urlPathHelper=new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper);
}
}
使⽤矩阵变量
@RestController
public class Demo {
@RequestMapping(value="test/{param}")
public Object test(@MatrixVariable(pathVar="param",value="color")String[] tt){
for (String s : tt) {
System.out.println(s);
}
return Result.success(200,tt);
}
}
调⽤时也可以写成http://127.0.0.1:8080/test/color=red;color=green;color=blue,结果是⼀样的@RestController
public class Demo {
@RequestMapping(value="test/{x1}/p/{x2}")
public Object test2(@MatrixVariable(pathVar = "x1") Map<String, String[]> x1,
@MatrixVariable(pathVar = "x2") Map<String, String[]> x2){
System.out.println(x1);
System.out.println(x2);
return x1+"-----"+x2;
}
}
附:
Result.java
package com.example.demo.core;
import com.alibaba.fastjson.JSON;
/**
* Created by Beibei on 19/02/22
* API响应结果
*/
public class Result<T> {
private int code;
private String message;
private T data;
public Result setCode(Integer code) {
this.code = code;
return this;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public Result setMessage(String message) {
this.message = message;
return this;
}
public T getData() {
return data;
}
public Result setData(T data) {
this.data = data;
return this;
}
@Override
public String toString() {
return JSON.toJSONString(this);
}
public static <T> Result<T> fail(Integer code,T data) {
Result<T> ret = new Result<T>();
ret.setCode(code);
ret.setData(data);
return ret;
}
public static <T> Result<T> failMessage(Integer code,String msg) {
Result<T> ret = new Result<T>();
ret.setCode(code);
ret.setMessage(msg);
return ret;
}
public static <T> Result<T> successMessage(Integer code,String msg) { Result<T> ret = new Result<T>();
ret.setCode(code);
ret.setMessage(msg);
return ret;
}
public static <T> Result<T> success(Integer code,T data) {
Result<T> ret = new Result<T>();
ret.setCode(code);
ret.setData(data);
return ret;
}
}
View Code
MyData.java
package com.example.demo.domain;
public class MyData {
private int id;
private String name;
private String other;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public String getOther() {
return other;
}
public void setOther(String other) {
this.other = other;
}
}
View Code。