本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:SpringBoot Controller接收参数的几种方式盘点

SpringBoot Controller接收参数的几种常用方式盘点如下:

一、请求路径参数

1.@PathVariable

适用于url包含请求参数的情况,例如:/common-bsp/bsp/organ/{struIds},后台接收示例:

    @DeleteMapping("/{struIds}")
public ResponseResult deleteOrgan(@PathVariable String struIds) {
return service.deleteOrgan(struIds);
}

2.@RequestParam

适用于Get请求,将参数放置于请求地址后面的情况,例如:userEdit.html?operaType=add,后台接收:

    @GetMapping(value = "/struExtAndOrgan")
public ResponseResult getStruExtAndOrgan(@RequestParam HashMap<String, Object> parameters) {
return pubStruExtService.getStruExtAndOrgan(parameters);
}

3.@ModelAttribute

适用于从Form表单或URL参数中获取(实际上,不用此注解也能拿到pubOrgan对象)。

    @GetMapping("/organs")
public ResponseResult queryOrgans(@ModelAttribute PubOrgan pubOrgan) {
ResponseResult responseResult = new ResponseResult(service.select(pubOrgan));
return responseResult;
}

更多@ModelAttribute注解用法参考:全面解析Spring中@ModelAttribute注解的用法

二、Body参数

1.@RequestBody

@PostMapping
public ResponseResult addNextLevel(@RequestBody PubOrgan pubOrgan) {
return service.addNextLevel(pubOrgan);
}

类似的也可以像下面这样:

@PostMapping
public ResponseResult addNextLevel(@RequestBody HashMap<String, Object> parameters) {
return service.addNextLevel(parameters);
}

2.无注解

@PostMapping
public ResponseResult addNextLevel(PubOrgan pubOrgan) {
return service.addNextLevel(pubOrgan);
}

三、请求头参数以及Cookie的获取

需要借助@RequestHeader@CookieValue注解:

@GetMapping("/demo3")
public void demo3(@RequestHeader(name = "myHeader") String myHeader,
@CookieValue(name = "myCookie") String myCookie) {
System.out.println("myHeader=" + myHeader);
System.out.println("myCookie=" + myCookie);
}

或者

@GetMapping("/demo3")
public void demo3(HttpServletRequest request) {
System.out.println(request.getHeader("myHeader"));
for (Cookie cookie : request.getCookies()) {
if ("myCookie".equals(cookie.getName())) {
System.out.println(cookie.getValue());
}
}
}

本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:SpringBoot Controller接收参数的几种方式盘点

SpringBoot Controller接收参数的几种方式盘点的更多相关文章

  1. spring-boot-route(一)Controller接收参数的几种方式

    Controller接收参数的常用方式总体可以分为三类.第一类是Get请求通过拼接url进行传递,第二类是Post请求通过请求体进行传递,第三类是通过请求头部进行参数传递. 1 @PathVariab ...

  2. SpringBoot Controller接收参数的几种常用方式

    第一类:请求路径参数1.@PathVariable获取路径参数.即url/{id}这种形式. 2.@RequestParam获取查询参数.即url?name=这种形式 例子GET http://loc ...

  3. SpringBoot Controller接收参数的几种常用方

    第一类:请求路径参数 1.@PathVariable 获取路径参数.即url/{id}这种形式. 2.@RequestParam 获取查询参数.即url?name=这种形式 例子 GET http:/ ...

  4. springboot 获取控制器参数的几种方式

    这里介绍springboot 获取控制器参数有四种方式 1.无注解下获取参数 2.使用@RequestParam获取参数 3.传递数组 4.通过URL传递参数 无注解下获取参数无注解下获取参数,需要控 ...

  5. ssh框架总结之action接收参数的三种方式

    页面将参数传递给action的三种方式 一是通过属性传值: 将页面和action的的属性值保持一致,在action上写上该属性的set和get方法,这样在页面提交参数的时候,action就会调用set ...

  6. strut2接收参数的三种方式

    strut2接收参数有三种方式(普通属性\领域对象\模型驱动),分别对三种进行一个总结: 一.普通属性 Jsp代码 <body> <h1>普通属性</h1> < ...

  7. jnhs-SpringMVC jsp页面向controller传递参数的五种方式

    一共是五种传参方式: 一:直接将请求参数名作为Controller中方法的形参 public  String login (String username,String password)   : 解 ...

  8. 前端ajax异步传值以及后端接收参数的几种方式

    原文参考 异步传值 前台往后台传值呢,有很多种方式,大家听我细细道来. 第一种呢,也是最简单的一种,通过get提交方式,将参数在链接中以问号的形式进行传递. // 前台传值方法 // 触发该方法调用a ...

  9. Struts2接收参数的几种方式

    一.用Action属性 在action里定义要接收的参数,并提供相应的set和get方法. 如: public class LoginAction extends ActionSupport { pr ...

随机推荐

  1. jquery选择器中中>和空格的区别

    空格:$('parent childchild')表示获取parent下的所有的childchild节点 大于号:$('parent > childchild')表示获取parent下的所有下一 ...

  2. TopCoder[SRM513 DIV 1]:Reflections(1000)

    Problem Statement      Manao is playing a new game called Reflections. The goal of the game is trans ...

  3. duilib教程之duilib入门简明教程7.XML基础类

    现在大家应该对XML描述界面不那么陌生了,那么我们做进一步介绍. 前面的教程我们写了很多代码,为的是让大家了解下基本流程,其实duilib已经对常用的操作做了很好的包装,正式使用时无需像前面的教程那样 ...

  4. python封装email模块

    一.代码 from email.mime.text import MIMEText from email.header import Header from email.utils import pa ...

  5. day 80 Vue学习一之vue初识

    Vue学习一之vue初识   本节目录 一 Vue初识 二 ES6的基本语法 三 Vue的基本用法 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 vue初识 vue称为渐进式js框架 ...

  6. 结合sessionStorage解决vuex页面刷新数据丢失的问题

    将需要保存在vuex中的数据同时保存在sessionStorage中即可: import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); ...

  7. 07_mybatis延迟加载

    1. 延迟加载 ​ resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. 需求: ...

  8. flexbox属性速览及常见布局实现

    CSS3 弹性盒子(Flex Box)弹性盒子是即 CSS2 浮动布局后, CSS3 的一种新的布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同 ...

  9. Spring 声明式事务管理(11)

    案例分析 本案例是图书管理系统精简部分,在数据库中有3张表.分别保存图书库存.图书信息和用户信息.下面是建表SQL语句 1 DROP TABLE IF EXISTS store; 2 DROP TAB ...

  10. 【学术篇】luogu1558&&poj2777 色板游戏

    题目の传送门: luogu:https://www.luogu.org/problem/show?pid=1558 poj:http://poj.org/problem?id=2777 题目大意:给有 ...