SpringMVC常用注解

1、@Controller

        声明该类为SpringMVC中的Controller

        控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中使用@Controller ,就无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

2、@RequestMapping

        是一个用来处理请求地址映射的注解,可用于类或方法上

        可以作用在方法和类上:作用在类上:第一级的访问目录;作用在方法上:第二级的访问目录。

        RequestMapping注解有六个属性:

  • value:指定请求的实际地址

  • method:指定请求的method类型, GET、POST、PUT、DELETE等;

  • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

  • produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

  • params:指定request中必须包含某些参数值是,才让该方法处理。

  • headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

3、@GetMapping&@ PostMapping

        简化@RequestMapping的写法

        @RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)新方法可以简化为:@GetMapping(“/get/{id}”)

        @GetMapping用于处理请求方法的GET类型,@ PostMapping用于处理请求方法的POST类型等。

4、@RequestParam

        用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”),它有三个常用参数:

  • defaultValue = “0”:表示设置默认值
  • required = false:通过boolean设置是否是必须要传入的参数
  • value = “isApp”:表示接受的传入的参数类型

5、@ResponseBody&@RequestBody

         @ResponseBody:作用是将 controller 的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到 response对象的 body 区,通常用来返回 JSON 数据或者是 XML 数据。。

        @RequestBody:作用在形参列表上时,用于将前台发送过来固定格式的数据(xml 格式或者 json 等)封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的,由 HttpMessageConverter 进行解析,然后封装到形参上。

@RequestMapping(value = "login")
@ResponseBody // 将请求中的数据写入user对象中,把前端携带的信息封装成后端具体的bean,后端通过操作bean实现后续业务。
public Person login(@RequestBody User user) {retrun user;
}

6、@RestController

        等价于 @Controller + @ResponseBody。 表示所有的请求都支持对象格式(json格式)的数据返回。

7、@PathVariable

        用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

@RequestMapping(value=“/users/{userId}/topics/{topicId}”)
public String test( @PathVariable(value=“userId”) int userId, @PathVariable(value=“topicId”) int topicId) {}

8、@ModelAttribute

1) 可以用在方法的参数上:注解在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中

2)用在Controller的方法上:注解在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中

9、@SessionAttributes

        默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。

        @SessionAttributes的参数:

  • names:这是一个字符串数组。里面应写需要存储到session中数据的名称。
  • types:根据指定参数的类型,将模型中对应类型的参数存储到session中。
  • value:其实和names是一样的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/197699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pip命令详解

pip命令介绍 pip是由Ian Bicking在2008年提出的,他将pyinstall重命名为pip。名称pip是首字母缩写词,全称为“Package Installer for Python”。自Python3的3.4版本以及Python2的2.7.9版本开始,pip被直接包括在Python的安装包内,成…

【原神游戏开发日志1】缘起

【原神游戏开发日志1】缘起 版权声明 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明 文章内容不得删减、修改、演绎 相关学习资源见文末 大家好,最近看到原神在TGA上频频获奖,作为一个14年经验的游戏开…

C语言每日一题(45)删除排序链表中的重复元素

力扣网83 删除排序链表中的重复元素 题目描述 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2]示例 2: 输入&…

Android 11.0 Camera 分辨率从高到低排列功能实现

1.前言 在11.0的系统ROM定制化开发中,在对Camera2的产品进行定制化的时候,在camera2的设置页面,总是会发现在预览 分辨率的列表中,有的产品不是按照分辨率的大小来进行排序显示的,所以就需要了解显示流程,然后按顺序排序来实现 功能,接下来实现相关功能 2.Camera 分…

公有云迁移研究——AWS DMS

大纲 1 什么是DMS2 DMS的作用3 DMS在迁移的时候都做些什么4 在使用DMS的时候我们需要做些什么5 操作5.1 创建两个数据库终端节点5.2 创建迁移任务 6 可能遇到的问题7 总结 在本地机房或其他云往AWS上做迁移时,往往会遇到数据库迁移的任务。如果数据量不是特别大&…

SQL server QUOTENAME()和CONVERT()函数一起使用来将日期值格式化

在这段代码中,QUOTENAME()和CONVERT()函数一起使用来将日期值格式化并引用在动态SQL语句中。 CONVERT(): 这是SQL Server中的一个内置函数,用于将数据从一种类型转换为另一种类型。在这个例子中,它接受三个参数: a. 目标数据类型…

Linux 软件安装

目录 一、Linux 1、Linux异常解决 1、JDK安装 1、Linux卸载JDK 2、Linux安装JDK 2、Redis安装 一、Linux 1、Linux异常解决 1、Another app is currently holding the yum lock; waiting for it to exit... 解决办法: rm -f /var/run/yum.pid1、杀死这个应用程序 ps a…

计算机网络:传输层——多路复用与解复用

文章目录 前言一、Socket(套接字)二、多路复用/解复用三、多路解复用(1)多路解复用原理(2)无连接(UDP)多路解复用(3)面向连接(TCP)的多…

mysql大数据量查询瓶颈解决方案-供参考

项目运行了三年了,流水表主表数据已经达到4kw以上 所以最近项目开始时不时的出现问题,主要体现在以下方面: 1.客户端经常出现查询超时。 1.1 mybatis分页查询出现问题。 对于这个情况,我在这篇博客中做了描述,可以移…

进入软件的世界

选择计算机 上高中的时候,因为沉迷于网络游戏,于是对计算机产生了浓厚的兴趣,但是那个时候对于计算机的了解还是非常肤浅的。上大学的时候,也就义无反顾的选择了计算机专业,其实并不是一个纯粹的计算机专业&#xff0…

每日OJ题_算法_双指针①_力扣283. 移动零

目录 力扣283. 移动零 解析代码 力扣283. 移动零 283. 移动零 - 力扣(LeetCode) 难度 简单 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的…

使用Redis管理登录令牌cookie

相关知识 大多数网站都会使用 cookie 记录用户的身份。cookie 是由少量数据组成的字符串(通常还要经过加密)。网站会要求浏览器存储这些数据,并在向服务端发起请求时将这些数据传回给服务端。 通常,用于处理登录(识别…

AI Agent 结构与分类

一、什么是AI agent 在人工智能中,智能代理AI Agent是以智能方式行事的代理;它感知环境,自主采取行动以实现目标,并可以通过学习或获取知识来提高其性能。人其实就是一种复杂代理。 为了理解智能代理的结构,我们应该熟…

前后端数据传输格式(下)

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 上篇主要复习了HTTP以及…

时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)

一、本文介绍 本篇文章给大家带来的是利用我个人编写的架构进行LSTM模型进行时间序列建模(专门为了时间序列领域新人编写的架构,简单且不同于市面上大家用GPT写的代码),包括结果可视化、支持单元预测、多元预测、模型拟合效果检测…

Android : ViewModel_解决textView 横竖屏数据丢失

横竖屏切换 textView 数据丢失 1.导包 // 使用androidx版本库implementation androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03// 或者,使用support版本库implementation android.arch.lifecycle:extensions:1.1.1 2.写个类 继承 viewModel import an…

文字处理工具Word mac软件特点

Microsoft Word mac是一款文字处理软件。它是 Microsoft office 套件的一部分,已广泛用于创建、编辑和格式化文本文档。 Word mac软件特点 改进的协作工具:使用 Microsoft Word 2021,多个用户可以同时处理一个文档,从而更轻松地与…

记录111

在两台 RHEL 8 服务器上搭建 PostgreSQL 和 pgpool-II 环境涉及到安装 PostgreSQL、配置流复制(Streaming Replication)以及安装和配置 pgpool-II。以下是详细的步骤: ### 准备工作 1. **获取服务器**:确保你有两台运行 RHEL 8 的…

EasyRecovery2024免费永久版手机数据恢复软件

EasyRecovery2024是一款操作安全、用户可自主操作的数据恢复方案,它支持从各种各样的存储介质恢复删除或者丢失的文件,其支持的媒体介质包括:硬盘驱动器、光驱、闪存、硬盘、光盘、U盘/移动硬盘、数码相机、手机以及其它多媒体移动设备。能恢…

bad_python

攻防世界 (xctf.org.cn) 前戏 下载文件,解压完成后是这个 一个pyc文件 这里要用到python的反编译 要用到的工具有两个 1.python自带的uncompyle6 2.pycdc文件——比uncompyle6强大一点 我们一个一个来尝试一下 uncompyle6: 我是直接在pycharm里面…