springmvc 中RequestMapping注解的使用

时间:2023-03-08 17:10:10

1、RequestMapping注解既可以修饰方法,又可以修饰类型,类型指定的url相对于web跟路径,而方法修饰的url相对于类url;

2、RequestMapping的几个属性:

  value:用于指定url;

  method:用于指定请求方式;

  params:请求参数,支持简单的表达式,例子: params = {"username","age!=10"}表示请求参数中必须有username age不能等于10.

  headers:请求头,支持简单表达式,例子:headers = {"Accept Language=zh-CN,zh;q=0.8"}表示Accept Lanuage必须等于这个否则无法找到链接

  这些参数用于更加精确指定请求。

3、RequestMapping注解支持ant类型通配符:

  ?:表示一个字符;

  *:表示任意多个字符

  **:匹配多层路径

  例如:RequestMapping("testAnt/*/abc") 表示 /testAnt/sndbsbhds(任意多个字符)/abc

测试代码示例:

/**
* 四个属性用于指定更加详细的url headers = { "Accept-Language=zh-CN,zh;q=0.8,en;q=0.6" }
* "username",
*
* @return
*/
@RequestMapping(value = "/helloworld", method = RequestMethod.GET, params = {
"username", "age!=10" }, headers = { "Accept-Language=zh-CN,zh;q=0.8,en;q=0.6" })
public String hello() {
System.out.println("hello");
return SUCCESS;
} @RequestMapping(value = "/helloworld/*/abc", method = RequestMethod.GET)
public String hello1() {
System.out.println("hello");
return SUCCESS;
}

请求:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>welcome page</title>
</head>
<body>
<a href="test/helloworld?username=&age=11">Hello World</a>
<br>
<br>
<a href="test/helloworld/adaf/abc">test Ant</a>
</body>
</html>