Spring @RequestMapping注解示例
在 spring mvc hello world 应用程序中,我们看到了具有端到端功能(不包括任何数据库访问)的非常基本的员工管理应用程序。 在学习spring mvc 模块的下一步中,我将提供@RequestMapping注解的一些示例,以说明如何使用@RequestMapping以不同的方式将 URL映射到控制器方法。我再次使用与 Spring MVC Hello World 应用程序相同的代码库,并使用@RequestMapping注解仅更改控制器类。
1)仅方法级别的@RequestMapping注解
在@RequestMapping注解的这种用法中,必须提供完整的路径作为value属性。例如,请看下面具有基本 CRUD 操作的控制器代码。
@Controller
public class EmployeeController
{@RequestMapping("/employee-management/employees")public String getAllEmployees(Model model){//application codereturn "employeesList";}@RequestMapping("/employee-management/employees/add")public String addEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping("/employee-management/employees/update")public String updateEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping(value={"/employee-management/employees/remove","/employee-management/employees/delete"})public String removeEmployee(@RequestParam("id") String employeeId){//application codereturn "employeesList";}
}
如果可以将多个网址映射到单个方法,则可以将具有所有不同网址的字符串参数数组传递给value属性,例如,我们在上面的示例中针对removeEmployee()方法执行了此操作。如果您调用 URL <BASE_URL>/employee-management/employees/remove
或<BASE_URL>/employee-management/employees/delete
。
2)类级别以及方法级别的@RequestMapping注解
在上面的示例中要注意的一件事是,/ employee-management / employees是映射到所有方法的每个 URL 的一部分。 如果我们以某种共同的步伐放它,并且每种方法应该仅具有所需的标识符,那将是很好的。
这可以通过将@RequestMapping注解放在类级别和方法级别上来完成。 看下面的例子。
@Controller
@RequestMapping("/employee-management/employees/*")
public class EmployeeController
{@RequestMappingpublic String getAllEmployees(Model model){//application codereturn "employeesList";}@RequestMapping("/add")public String addEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping("/update")public String updateEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping(value={"/remove","/delete"})public String removeEmployee(@RequestParam("id") String employeeId){//application codereturn "employeesList";}
}
现在,我们也在类级别应用了注解。请注意,此更改不会更改映射的行为。它们与以前完全相同。
要注意的另一件事是,第一种方法getAllEmployees()缺少 URL 值。 由于类级别使用/employee-management/employees/ URL 通配符,因此,如果没有其他与任何请求匹配的处理器,则将该处理器方法作为catch块执行。因此,任何 URL 请求(例如/employee-management/employees/list
或/employee-management/employees/abcd
或/employee-management/employees/
)触发此方法。
3)仅使用 HTTP 请求类型的@RequestMapping注解
也有可能在类级别上只有一个@RequestMapping注解,而在方法级别上您没有指定 URL 值。 只需指定 HTTP 请求类型,即可将每种不同的 http 类型映射到不同的方法。 这种设计在 RESTFul Web 服务 中非常流行。
@Controller
@RequestMapping("/employee-management/employees")
public class EmployeeController
{@RequestMapping (method = RequestMethod.GET)public String getAllEmployees(Model model){//application codereturn "employeesList";}@RequestMapping (method = RequestMethod.POST)public String addEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping (method = RequestMethod.PUT)public String updateEmployee(EmployeeVO employee){//application codereturn "employeesDetail";}@RequestMapping (method = RequestMethod.DELETE)public String removeEmployee(@RequestParam("id") String employeeId){//application codereturn "employeesList";}
}
请注意,在此示例代码中,将使用相同的 URL 访问所有方法,但使用不同的 http 请求类型。
Spring @RequestMapping注解示例相关推荐
- spring mvc -@RequestMapping注解详解
https://www.cnblogs.com/caoyc/p/5635173.html @RequestMapping参数说明: value:定义处理方法的请求的URL地址(重点): method: ...
- Spring MVC @RequestMapping注解详解
@RequestMapping 参数说明 value:定义处理方法的请求的 URL 地址.(重点) method:定义处理方法的 http method 类型,如 GET.POST 等.(重点) pa ...
- Spring MVC中@Controller和@RequestMapping注解详解
在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...
- Spring MVC @RequestMapping Annotation示例
Spring MVC @RequestMapping Annotation示例 Controller,Methods,Headers,Params,@ RequestParam,@ PathVaria ...
- requestmapping注解访问404_开发人员都必须知道的Spring注解概览
作者:飒然Hang 来源:rowkey.cn/blog 前言 从Java5.0开始,Java开始支持注解.Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解.相比起之前使用xml来 ...
- requestmapping注解作用_Java高级架构师-Spring 注解编程之注解属性别名与覆盖
欢迎关注头条号:Java小野猫 注解属性方法 在进入了解 Spring 注解属性功能之前,我们先看一个正常 Java 注解. 在注解中,属性方法与其他类/接口方法写法类似,但是存在一些区别. 注解属性 ...
- 带有控制器,方法,标题,参数,@ RequestParam,@ PathVariable的Spring MVC @RequestMapping注释示例
@RequestMapping is one of the most widely used Spring MVC annotation. org.springframework.web.bind.a ...
- Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例
Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例 一.概述 在日常开发的工作中,经常会使用异步进行开发.Spring 提供一个简单 ...
- Spring MVC框架:第二章:视图解析器和@RequestMapping注解使用在类级别及获取原生Servlet API对象
SpringMVC使用细节 第一节 视图解析器 通过HelloWorld程序我们看到了handler方法的返回值表示: 请求处理完成后,请SpringMVC执行一个请求转发.转发的地址就是handle ...
最新文章
- Redis的内存消耗
- 非极大值抑制(Non-Maximum Suppression,NMS)(转)
- staruml 为类的属性指定数据类型_关于python的数据类型
- 研究了EXCEL的行高问题
- delphi 侧边栏_Delphi 开发工具各版本官方下载地址
- java8 新特性之 -- lamdba 表达式 -- Optional类 --遍历 Map List
- Linux源码编译即黑客帝国屏保cmatrix安装
- mysql 视频教程下载_最全138节Mysql数据库+PHP零基础到精通视频教程【云盘下载】...
- gitbub 创建本地仓库注意点。
- 机试评判系统评判提交程序后返回结果详细说明
- 内网渗透测试:内网横向移动基础总结
- stm32f4 RTC实时时钟解析
- 马士兵mca课程java学习笔记
- 视频(图像)质量检测
- iSCSI #2 issue 记录
- 未来计算机游戏,未来可追 ROG光刃G15游戏电脑首发登场
- 解决 ubuntu 14.04下,eclipse adt-bundle-linux 闪退的问题,最新ADT-23.0.7
- 高职计算机公共课程改革研究,高职公共计算机课程改革探析论文
- mysql 集群 grra_Oracle RAC 导致实例驱逐的五大原因[ID 1526186.1]
- 回顾我的程序员之路,那些得与失,幸福与心酸
热门文章
- all方法 手写promise_前端进阶高薪必看手写源码篇
- 使用工具Csvde导出域中所有用户信息
- Mysql学习总结(79)——MySQL常用函数总结
- 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
- Jquery学习总结(2)——jQuery Ajax用法详解
- eclipse如何运行html文件,eclipse中applet嵌入html文件
- android 客户端bks,Keytools Https双向认证(Android通用)
- linux内核创建字符节点,Tiny6410学习ing—(四)、嵌入式Linux内核驱动进阶—(7)、高级字符设备驱动(自动创建节点)—#931...
- python读取多个txt文件数据恢复_带有Pandas的Python 2.7:如何恢复两个数据帧...
- vue 监听对象里的特定数据