Spring MVC4 @RequestMapping

@RequestMapping

修饰类

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping

查看RequestMapping源码会发现@Target({ElementType.METHOD, ElementType.TYPE})说明RequestMapping可以用于方法以及类声明上,在类上注明RequestMapping后,访问类中方法时需加上类的RequestMapping地址。例如

@RequestMapping("/test")
@Controller
public class TypeMappingTest {
    @RequestMapping("/testReauestMapping")
    public String testReauestMapping() {
        System.out.println("testReauestMapping");
        return "success";
    }
}

需要访问testReauestMapping方法时就不能时使用testReauestMapping路径了,而需使用test/testReauestMapping

参数所对应内容

参数名 所对应内容
value 请求URL
methd 请求方法
params 请求参数
heads 请求头

在映射时它们彼此是的关系,联合多个条件可以使请求更加精确。

限定方法

@RequestMapping(value = "/testParas", method = RequestMethod.POST)

例如上面的请求就指定了必须是post的请求才会响应,此时如果使用get访问,则会报405错误。

限定参数

格式 说明
param1 表示请求必须包含param1的请求参数
!param1 表示请求必须不能包含param1的请求参数
param1!=value1 表示请求包含名为param1的参数,但其值不能为value1
{“param1=value1”,”param2”} 请求必须包含名为param1和param2的两个请求参数,且param1的值必须为value1

限定头信息[与限定参数部分类似不做详细说明]

支持Ant风格的通配符

@RequestMapping支持符合Ant规则的通配符

通配符 说明 示例
? 匹配一个任意字符 /a/?b 可以匹配/a/ab;/a/cb。但不能匹配/a/acb之类
* 匹配任意长度的字符 /a/ *b可以匹配/a/cb;/a/acb。但不能匹配/a/cb/vb
** 匹配多层路径 可以匹配/a/ab;/a/acb;/a/ab/abc/…/…

你可能感兴趣的:(spring,spring,mvc,mvc)