当前位置: 首页 > news >正文

springMVC常用注解

目录

springMVC常用注解(一般用在后端控制器方法的入参里面,用于获取前端传递的信息)

@RequestParam注解:

@RequestBody注解

@RequestHeader 获取请求头的值

@CookieValue 获取到cookie中的值

代码实例:

@PathVaribale注解

restful风格


springMVC常用注解(一般用在后端控制器方法的入参里面,用于获取前端传递的信息)

(完整版示例代码可接前几篇关于springMVC的文章,这是一个整体的演示springMVC的demo)

@RequestParam注解:

作用:把请求中的指定名称的参数传递给控制器中的形参赋值

前端请求参数name与后端方法的参数不一致,则可用@RequestParam注解,指定一下前端请求参数

其内部属性为:

  • value:请求参数中的名称,与前端传递的参数相对应
  • required:默认值是true,如果是true的话,value必须提供与前端请求参数一致的参数,如果是false则不一定要提供
  • defaultValue = "abc" 默认赋值

@RequestBody注解

作用:用于获取请求体的内容(注意:get方法不可以,必须用post方法

@RequestHeader 获取请求头的值

@CookieValue 获取到cookie中的值

代码实例:

@Controller
@RequestMapping("/dept")
public class DeptController {
​/*** RequestParam注解* required = false ,默认值是true,必须要传请求参数,不传就会报错* defaultValue = "abc" 如果没有传请求参数,使用默认值* @return*/@RequestMapping("/save1.do")public String save(@RequestParam(value = "username",required = false,defaultValue = "abc") String name){System.out.println("姓名:"+name);return "suc";}/**@RequestBody获取请求体的内容*/@RequestMapping("/save2.do")public String save2(@RequestBody String body){System.out.println("请求体内容:"+body);return "suc";}/*** RequestHeader 获取请求头的值* @return*/@RequestMapping("/save3.do")public String save3(@RequestHeader(value = "Accept") String header){System.out.println("Accept请求头的值:"+header);return "suc";}/*** CookieValue 获取到cookie中的值* @return*/@RequestMapping("/save4.do")public String save4(@CookieValue(value = "JSESSIONID") String cookie){System.out.println("值:"+cookie);return "suc";}
}

@PathVaribale注解

代码举例:通过path = "/emp/{id}" 获取前端传过来的参数和id然后通过@PathVariable(value = "id")赋值给Integer id

此时,前端传递的可以是localhost:8081/emp/5 此时Integer id就是5

/*** 查询所有* @return*/
@RequestMapping(path = "/emp/{id}",method = RequestMethod.GET) //这里是restful风格
public String findById(@PathVariable(value = "id") Integer id){System.out.println("通过id查询员工..."+id);return "suc";
}

这里给一个index.jsp用于前端演示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>首页</title>
</head>
<body><h3>演示SpringMVC常用注解</h3>
<h4>@RequestBody注解</h4>
<form method="post" action="/dept/save2.do">用户名:<input type="text" name="username01"/>密码:<input type="password" name="password"/><input type="submit" name="submit" value="提交"/>
</form>
<h4>@RequestHeader注解</h4>
<form method="post" action="/dept/save3.do">用户名:<input type="text" name="username01"/>密码:<input type="password" name="password"/><input type="submit" name="submit" value="提交"/>
</form>
<hr/>
<h3>演示Rrestful风格的请求路径显示</h3>
<form method="post" action="/emp">用户名:<input type="text" name="username01"/>密码:<input type="password" name="password"/><input type="submit" name="submit" value="提交"/>
</form></body>
</html>

restful风格

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • K8S 上部署 Prometheus + Grafana
  • VScode连接虚拟机运行Python文件的方法
  • 物联网mqtt网关搭建背后的技术原理
  • [k8s源码]6.reflector
  • 开发面试算法题求教
  • Mojo模型魔法:动态定制特征转换的艺术
  • C#中栈和堆以及修饰符
  • 系统架构设计师教程 第3章 信息系统基础知识-3.8 典型信息系统架构模型-解读
  • Kafka Producer之事务性
  • VSCode STM32嵌入式开发插件记录
  • 计算机毕业设计hadoop+spark+hive物流大数据分析平台 仓储数据分析 物流预测系统 物流信息爬虫 物流大数据 机器学习 深度学习 知识图谱 大数据
  • 软件物料清单科普 | SBOM对开源管理的意义
  • Apache POI-Excel入门与实战
  • 数据仓库中的数据治理流程
  • 什么是离线语音识别芯片?与在线语音识别的区别
  • JavaScript-如何实现克隆(clone)函数
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • docker-consul
  • ES6核心特性
  • ESLint简单操作
  • express如何解决request entity too large问题
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Js基础——数据类型之Null和Undefined
  • magento2项目上线注意事项
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PV统计优化设计
  • Vue ES6 Jade Scss Webpack Gulp
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于字符编码你应该知道的事情
  • 强力优化Rancher k8s中国区的使用体验
  • 深入浅出Node.js
  • 使用agvtool更改app version/build
  • 一个JAVA程序员成长之路分享
  • 异常机制详解
  • 《码出高效》学习笔记与书中错误记录
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ionic异常记录
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 数据可视化之下发图实践
  • ​TypeScript都不会用,也敢说会前端?
  • # 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群
  • #1015 : KMP算法
  • (7) cmake 编译C++程序(二)
  • (void) (_x == _y)的作用
  • (web自动化测试+python)1
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (强烈推荐)移动端音视频从零到上手(下)
  • (三分钟)速览传统边缘检测算子
  • (十八)SpringBoot之发送QQ邮件
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)Linux NTP配置详解 (Network Time Protocol)