使用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;
} }

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) {
this.name = name;
} public String getOther() {
return other;
} public void setOther(String other) {
this.other = other;
} }

spring boot前后端参数传递方式的更多相关文章

  1. 八个开源的 Spring Boot 前后端分离项目,一定要收藏!

    八个开源的 Spring Boot 前后端分离项目 最近前后端分离已经在慢慢走进各公司的技术栈,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,我们也非常建议大家学习一下前 ...

  2. 七个开源的 Spring Boot 前后端分离项目,一定要收藏!

    前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了.即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开发,以免在公司干了两三年 ...

  3. Vue+Spring Boot 前后端分离的商城项目开源啦!

    新蜂商城 Vue 移动端版本开源啦! 去年开源新蜂商城项目后,就一直在计划这个项目 Vue 版本的改造,2020 年开始开发并且自己私下一直在测试,之前也有文章介绍过测试过程和存在的问题,修改完成后, ...

  4. Spring Boot启动命令参数详解及源码分析

    使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...

  5. 右击main 方法运行正常,启动tomcat 后,spring boot 项目 出现参数字符串是乱码的情况

    PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "utf-8")) ...

  6. 七:Spring Security 前后端分离登录,非法请求直接返回 JSON

    Spring Security 前后端分离登录,非法请求直接返回 JSON 解决方案 在 Spring Security 中未获认证的请求默认会重定向到登录页,但是在前后端分离的登录中,这个默认行为则 ...

  7. spring boot + spring security +前后端分离【跨域】配置 + ajax的json传输数据

    1.前言 网上各个社区的博客参差不齐 ,给初学者很大的困扰 , 我琢磨了一天一夜,到各个社区找资料,然后不断测试,遇到各种坑,一言难尽啊,要么源码只有一部分,要么直接报错... 最后实在不行,直接去看 ...

  8. vue + spring boot + spring security 前后端分离 携带 Cookie 登录实现 只写了个登录

    最近想弄一下vue 所以就自己给自己找坑入   结果弄的满身是伤 哈哈哈 首先我说下 前后端分离  跨域请求  我在网上找了一些  可是都是针对于 spring boot 的 我自己还有 securi ...

  9. Spring MVC前后端的数据传输

    本篇文章主要介绍了Spring MVC中如何在前后端传输数据. 后端 ➡ 前端 在Spring MVC中这主要通过Model将数据从后端传送到前端,一般的写法为: @RequestMapping(va ...

随机推荐

  1. maven中jar冲突解决

    Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...

  2. PHP - Filters

    Retrieve the administrator password of this application. 对文件包含的介绍------------第一个链接需要谷歌 https://mediu ...

  3. Boring counting HDU - 3518 (后缀自动机)

    Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要 ...

  4. Docker网络配置、Docker部署分布式项目

    目标 1.Docker网络配置 2.Docker部署SpringCloud项目 Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/cont ...

  5. 使用solr将CSV/XML/DB/JSON数据发布为Rest Service

    Download http://lucene.apache.org/solr/downloads.html Apache Solr入门基础——Windows下安装与配置 https://blog.cs ...

  6. linux mustache bash 实现mo 做为docker容器运行动态配置工具数组的处理

    前面有说过关于使用mo 工具的简单配置使用,但是实际中我们可能存在比较复杂的数据处理,比如数组,mo 可以进行数组的处理,但是在测试的过程中,一直失败,查看了官方的demo以及帮助命令发现可以通过参数 ...

  7. Linux 系统管理——系统安全及应用

    chagen -d 0 ____用户名:下次登录时必须修改密码 ctrl+R:查看历史记录 history:查看历史记录 清除历史记录: >.bash _history echo“”>.b ...

  8. P3386 【模板】二分图匹配(匈牙利算法)

    题目背景 二分图 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+1行,每行两个正整数u,v,表示u,v有一条连边 ...

  9. APIO2019 游记

    \(\text {Cu}\)滚粗了,滚粗选手不配拥有游记.

  10. vlc for mac设置中文的方法

    VLC for mac是一款mac系统下的多媒体播放器,支持播放MPEG-1.MPEG-2.MPEG-4.DivX.MP3和OGG,以及DVD.VCD.等各种流媒体协议在内的多种协议格式,并且能够对电 ...