`

RequestMapping的使用

 
阅读更多

RequestMapping的使用

1)@RequestMapping除了修饰方法,还可以修饰类

2)

@RequestMapping的value,method,params和heads分别表示请求URL,请求方法,请求参数以及请求头

的映射条件,他们之间是与的关系,联合使用多个条件可以让请求映射更加精确化

params和headers支持简单的表达式

--param1:表示请求必须包含名为param1的请求参数

--!param1:表示请求不能包含名为param1的请求参数

--param1!=value1:表示请求包含名为param1的请求参数,但值不能为value1

--{“param1=value1”,“param2”}:请求必须包含名为param1和param2的两个请求参数,且param1

参数的值必须为value1

 

3)

Ant风格资源地址支持3种匹配符

-?:匹配文件名中的一个字符

-*:匹配文件名中任意字符

-**:**匹配多层路径

 

@RequestMapping还支持Ant风格的URL

-/user/*/createUser:匹配/user/aaa/createUser

/user/bbb/createUser等URL

-/user/**/createUser:匹配/user/createUser

/user/aaa/bbb/createUser等URL

-/user/createUser??:匹配/user/createUseraa

/user/createUserbb等URL

 

4)

通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中:

URL中的{xxx}占位符可以通过@PathVariable("xxx")绑定到操作方法的入参中

 

以下是代码示例,按号入座

 

package com.hous.springmvc.controller;

import org.junit.runner.Request;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@RequestMapping("/shanshanbox")
@Controller
public class ShanShanBox {

	private static final String SUCCESS = "success";
	
	/**
	 * 1. @RequestMapping除了修饰方法,还可以修饰类
	 * 2. 
	 * 	1)类定义处:提供初步请求映射信息,相对于WEB应用的根目录
	 * 	2)方法处:提供细分映射信息,相对于类定义处的URL。
	 * 	      若类处未标明@RequestMapping,则方法处的URL相对于WEB应用的根目录
	 * @return
	 */
	@RequestMapping("/testRequestMapping")
	public String testRequestMapping() {
		System.out.println("testRequestMapping");
		return SUCCESS;
	}
	
	/**
	 * 使用method指定请求的方式
	 * @return
	 */
	@RequestMapping(value="/testMethod", method=RequestMethod.POST)
	public String testMethod() {
		System.out.println("testMethod");
		return SUCCESS;
	}
	
	/**
	 * 使用params和headers可以更加精确的映射请求
	 * params和headers支持简单的表达式
	 * @return
	 */
	@RequestMapping(value="/testParamsAndHeaders",
			params={"user","age!=24"}, headers={})
	public String testParamsAndHeaders() {
		System.out.println("testParamsAndHeaders");
		return SUCCESS;
	}
	
	
	/**
	 * 支持通配符
	 * ?表示一个字符
	 * *表示任意字符
	 * **匹配多层路径
	 * @return
	 */
	@RequestMapping("/testAntPath/*/abc")
	public String testAntPath() {
		System.out.println("testAntPath");
		return SUCCESS;
	}
	
	/**
	 * @PathVariable可以映射URL中的占位符到目标方法的参数中
	 * @param id
	 * @return
	 */
	@RequestMapping("/testPathVariable/{id}")
	public String testPathVariable(@PathVariable("id") Integer id) {
		System.out.println("testPathVariable: " + id);
		return SUCCESS;
	}
	
}

 

分享到:
评论

相关推荐

    springmvc关于@requestMapping和@requestParam的使用

    1. **类级别的@RequestMapping**:当在类上使用时,该注解会应用于类中所有方法,为整个控制器设定一个基础的请求路径。例如,`@RequestMapping("/api")` 将使类中的所有方法都处理以"/api"开头的URL请求。 2. **...

    springmvc之@RequestMapping的demo

    本教程将通过一个简单的`springmvc_helloworld`项目来深入探讨`@RequestMapping`的使用。 首先,Spring MVC是一个基于Spring框架的轻量级MVC(Model-View-Controller)设计模式实现。它简化了Java Web应用的开发,...

    springMVC中 RequestMapping的使用.docx

    ### Spring MVC 中 `@RequestMapping` 注解的详细解析与应用 在现代Web开发中,Spring MVC框架因其灵活性、模块化及强大的...掌握好`@RequestMapping`注解的使用技巧,对于构建高效、易维护的Web应用程序至关重要。

    Spring MVC--2.@RequestMapping 映射请求

    本篇文章将深入探讨`@RequestMapping`的使用、功能以及相关知识点。 ### 1. `@RequestMapping`介绍 `@RequestMapping`是Spring MVC提供的一个类型级别的注解,可以应用在类或方法上,用于定义HTTP请求的映射规则。...

    利用反射获取requestMapping注解的value

    利用反射获取requestMapping注解的value,springMvc实现路径映射功能的逻辑

    Spring MVC之@RequestMapping详解

    本文将深入探讨@RequestMapping的使用方式,以及其在处理RESTful API时如何与各种参数绑定注解(@RequestParam、@RequestBody、@RequestHeader、@PathVariable)配合工作,并简要提及HttpMessageConverter的概念。...

    基于框架的Web开发-RequestMapping通配符和占位符.doc

    首先,`@RequestMapping`在类级别上的使用定义了一个初步的请求映射,通常作为URL路径的基础。例如: ```java @RequestMapping("/user") public class UserController { // ... } ``` 在这个例子中,`/user`路径...

    Springmvc中 RequestMapping 属性用法归纳.docx

    在上述代码示例中,`@RequestMapping`注解被巧妙地使用来处理不同类型的请求: - 在类级别,`@RequestMapping("/appointments")`定义了所有方法的父路径,使得所有方法都在`/appointments`路径下。 - `@...

    简化版@requestmapping注解注册源码

    4. **模型数据**:`@ModelAttribute`注解可以用来将请求参数绑定到对象属性,或者将对象添加到模型中供视图使用。 现在我们来看看如何实现一个简化的`@RequestMapping`注解。首先,你需要创建一个新的注解,比如`@...

    获取RequestMapping所有的方法和路径|SpringMvc的Controller

    通过编译文件的class路径,反射得到Class,获取RequestMapping对应注解和value路径

    SpringMVC-2 使用@RequestMapping映射请求

    `@RequestMapping`还支持使用通配符和占位符来映射更复杂的路径模式。例如,使用`*`通配符: ```java @RequestMapping("/users/*") public String handleUserRequest(String userId) { // 处理用户请求的逻辑 } ``...

    SpringMVC@RequestMapping(重点)@RequestParam@PathVariable示例

    在实际应用中,`@RequestMapping`、`@RequestParam`和`@PathVariable`经常一起使用,以实现更灵活的请求处理。例如,你可以在一个方法中同时使用`@PathVariable`和`@RequestParam`来处理包含动态路径和请求参数的...

    Spring mvc中 RequestMapping 6个基本用法小结

    在上面的例子中,我们使用 @RequestMapping 注解将 simplePattern 方法映射到 /departments 地址上。当用户访问 http://localhost/xxxx/departments 时,该方法将被调用。 2. 参数绑定 在 Spring MVC 中,我们可以...

    详解获取Spring MVC中所有RequestMapping以及对应方法和参数

    "详解获取Spring MVC中所有...通过使用 RequestMappingHandlerMapping 和 JAVAssist,我们可以获取Spring MVC中所有的RequestMapping及其对应的方法和参数。这对于实现权限控制和日志记录等功能非常有用。

    02@RequestMapping映射.md

    02@RequestMapping映射.md

    Spring MVC 学习笔记 五 controller与requestmapping

    工程文件 博文链接:https://starscream.iteye.com/blog/1063966

    Spring MVC温故而知新系列教程之请求映射RequestMapping注解

    在实际开发中,可以通过在同一个处理方法上使用多个`@RequestMapping`注解来处理不同请求,或者在一个类中定义多个方法来处理不同的URL。这种灵活的设计使得代码组织和请求路由变得简单。 ### 总结 `@...

    java8集合源码-tips:尖端

    RequestMapping 使用使用示例 编程闯关、完成挑战 设计模式 图片 图形化代码生成器 秒杀分析 排错工具 垃圾回收 log 权限框架比较 cron-utils time String 生产.java源代码 ,可以用来构建一些基础的代码,必须一些...

    java8集合源码-tips:小贴士

    RequestMapping 使用使用示例 编程闯关、完成挑战 设计模式 图片 图形化代码生成器 秒杀分析 排错工具 垃圾回收 log 权限框架比较 cron-utils time String 生产.java源代码 ,可以用来构建一些基础的代码,比如一些...

    框架Spring的Controller注解和RequestMapping注解 在MVC应用注意事项

    SpringMVC不能只使用@Controller而不使用@RequestMapping

Global site tag (gtag.js) - Google Analytics