springMVC@RequestMapping注解详细

在SpringMVC中的众多Controller以及每个Controller的众多方法,请求是如何映射到具体的处理方法上?这个就是靠@RequestMapping完成的。

@RequestMapping既可以定义在类上也可以定义在方法上,

请求映射的规则是:类上的@RequestMapping.value + 方法上的@RequestMapping.value.

@RequestMapping映射分类:

1、标准URL映射

标准URL映射是最简单的一种映射,例如:

@RequestMapping("/hello")  或 @RequestMapping(value="/hello")

请求url:

http://localhost/hello.action

2、Ant风格的URL映射

Ant通配符有三种:

@RequestMapping("/test/*/show")

匹配:

/hello/test/a/show.action

/hello/test/b/show.action

都是有效的。

3、占位符映射

Url中可以通过一个或多个{xxxx}占位符映射。

通过@PathVariable(“xxx”)绑定到方法的入参中。

例如:

@RequestMapping(“/user/{userId}/query")

请求URL:

http://localhost/user/8/query

4、限制请求方法映射

在Http请求中最常用的请求方法是GET、POST,还有其他的一些方法,DELET、PUT、HEAD等。

例如:

@RequestMapping(value = "/{userId}/query",method=RequestMethod.GET)

@RequestMapping(value = "/{userId}/query",method={RequestMethod.GET,RequestMethod.POST})

5、限制参数映射

设定请求的参数来映射URL,例如:

@RequestMapping(value="/query",params="userId")

要求请求中必须带有userId参数。

参数的限制规则如下:

params=”userId” 请求参数中必须包含userId

params=”!userId” 请求参数中不能包含userId

params=”userId!=1” 请求参数必须包含userId,但其值不能为1

params={“userId”,”name”} 必须包含userId和name参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`@RequestMapping`是Spring MVC框架中的一个重要注解,用于将HTTP请求映射到控制器的方法上。这个注解用于简化RESTful风格的Web服务开发,使得路由和处理逻辑更加清晰和模块化。下面是一些关于`@RequestMapping`实验小结的关键点: 1. **路径映射**:`@RequestMapping`用于指定一个或多个HTTP请求方法(GET, POST, PUT, DELETE等),以及对应的URL路径。例如,`@RequestMapping(value = "/users", method = RequestMethod.GET)`表示该方法处理所有发送到"/users"路径的GET请求。 2. **请求参数**:可以通过`@RequestParam`或`@PathVariable`注解处理请求参数,如查询参数、路径变量等。如`@RequestParam(name="id") Long userId`会从请求中获取名为"id"的查询参数。 3. **返回类型**:`@ResponseBody`可以用来标记返回值为JSON或XML响应体,而`@ModelAttribute`用于处理表单提交的模型属性。 4. **异常处理**:可以使用`@ExceptionHandler`注解来捕获特定的异常,并提供定制的错误处理。 5. **分组和扫描器**:为了方便管理,可以通过`@RequestMapping`的`@ControllerAdvice`或`@Controller`的`@RequestMapping(basePath = "/api/v1")`来对多个控制器进行分组或定义统一的路径前缀。 相关问题-- 1. `@RequestMapping`如何处理不同类型的HTTP请求? 2. 如何在Spring MVC中使用`@RequestParam`和`@PathVariable`? 3. `@ResponseBody`和`@ModelAttribute`的区别是什么? 4. 如何在Spring MVC中实现全局异常处理? 5. 分组和扫描器在Spring MVC中的应用场景是什么?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值