在 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注解示例相关推荐

  1. spring mvc -@RequestMapping注解详解

    https://www.cnblogs.com/caoyc/p/5635173.html @RequestMapping参数说明: value:定义处理方法的请求的URL地址(重点): method: ...

  2. Spring MVC @RequestMapping注解详解

    @RequestMapping 参数说明 value:定义处理方法的请求的 URL 地址.(重点) method:定义处理方法的 http method 类型,如 GET.POST 等.(重点) pa ...

  3. Spring MVC中@Controller和@RequestMapping注解详解

    在<第一个Spring MVC应用>教程中创建了两个传统风格的控制器,它们是实现 Controller 接口的类.传统风格的控制器不仅需要在配置文件中部署映映射,而且只能编写一个处理方法, ...

  4. Spring MVC @RequestMapping Annotation示例

    Spring MVC @RequestMapping Annotation示例 Controller,Methods,Headers,Params,@ RequestParam,@ PathVaria ...

  5. requestmapping注解访问404_开发人员都必须知道的Spring注解概览

    作者:飒然Hang 来源:rowkey.cn/blog 前言 从Java5.0开始,Java开始支持注解.Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解.相比起之前使用xml来 ...

  6. requestmapping注解作用_Java高级架构师-Spring 注解编程之注解属性别名与覆盖

    欢迎关注头条号:Java小野猫 注解属性方法 在进入了解 Spring 注解属性功能之前,我们先看一个正常 Java 注解. 在注解中,属性方法与其他类/接口方法写法类似,但是存在一些区别. 注解属性 ...

  7. 带有控制器,方法,标题,参数,@ RequestParam,@ PathVariable的Spring MVC @RequestMapping注释示例

    @RequestMapping is one of the most widely used Spring MVC annotation. org.springframework.web.bind.a ...

  8. Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例

    Spring 异步@Async注解用法 Spring @Async注解用法总结 Spring @Async基本用法示例 一.概述 在日常开发的工作中,经常会使用异步进行开发.Spring 提供一个简单 ...

  9. Spring MVC框架:第二章:视图解析器和@RequestMapping注解使用在类级别及获取原生Servlet API对象

    SpringMVC使用细节 第一节 视图解析器 通过HelloWorld程序我们看到了handler方法的返回值表示: 请求处理完成后,请SpringMVC执行一个请求转发.转发的地址就是handle ...

最新文章

  1. Redis的内存消耗
  2. 非极大值抑制(Non-Maximum Suppression,NMS)(转)
  3. staruml 为类的属性指定数据类型_关于python的数据类型
  4. 研究了EXCEL的行高问题
  5. delphi 侧边栏_Delphi 开发工具各版本官方下载地址
  6. java8 新特性之 -- lamdba 表达式 -- Optional类 --遍历 Map List
  7. Linux源码编译即黑客帝国屏保cmatrix安装
  8. mysql 视频教程下载_最全138节Mysql数据库+PHP零基础到精通视频教程【云盘下载】...
  9. gitbub 创建本地仓库注意点。
  10. 机试评判系统评判提交程序后返回结果详细说明
  11. 内网渗透测试:内网横向移动基础总结
  12. stm32f4 RTC实时时钟解析
  13. 马士兵mca课程java学习笔记
  14. 视频(图像)质量检测
  15. iSCSI #2 issue 记录
  16. 未来计算机游戏,未来可追 ROG光刃G15游戏电脑首发登场
  17. 解决 ubuntu 14.04下,eclipse adt-bundle-linux 闪退的问题,最新ADT-23.0.7
  18. 高职计算机公共课程改革研究,高职公共计算机课程改革探析论文
  19. mysql 集群 grra_Oracle RAC 导致实例驱逐的五大原因[ID 1526186.1]
  20. 回顾我的程序员之路,那些得与失,幸福与心酸

热门文章

  1. all方法 手写promise_前端进阶高薪必看手写源码篇
  2. 使用工具Csvde导出域中所有用户信息
  3. Mysql学习总结(79)——MySQL常用函数总结
  4. 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
  5. Jquery学习总结(2)——jQuery Ajax用法详解
  6. eclipse如何运行html文件,eclipse中applet嵌入html文件
  7. android 客户端bks,Keytools Https双向认证(Android通用)
  8. linux内核创建字符节点,Tiny6410学习ing—(四)、嵌入式Linux内核驱动进阶—(7)、高级字符设备驱动(自动创建节点)—#931...
  9. python读取多个txt文件数据恢复_带有Pandas的Python 2.7:如何恢复两个数据帧...
  10. vue 监听对象里的特定数据