mvc学习小笔记(一)@RequestMapping属性

255 阅读1分钟

1.value和path

两个效果是一样的,都用于指定请求的URL。

可以作用在方法和类上,作用在类上就是一级路径。

@Controller
@RequestMapping("/anno")
@SessionAttributes(value={"msg"})   
public class AnnoController {

    @RequestMapping("/testRequestParam")
    public String testRequestParam(@RequestParam(name="name") String username){
        System.out.println("执行了...");
        System.out.println(username);
        return "success";
    }

所以这个方法url是/anno/testRequestParam

2.method

用于指定请求的方法

@RequestMapping(value ="/testRequestParam",method = RequestMethod.GET)
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

只能用GET方法请求

public enum RequestMethod {
    GET,
    HEAD,
    POST,
    PUT,
    PATCH,
    DELETE,
    OPTIONS,
    TRACE;

    private RequestMethod() {
    }
}

RequestMethod是枚举类,所以用RequestMethod.方法的格式使用

3.params

用于定限制请求参数的条件

String[] params() default {};

所以是数组形式

@RequestMapping(value ="/testRequestParam",params = {"name"})
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

如上,需要请求参数中有name

<a href="anno/testRequestParam?name=username">RequestParam</a>

如上,超链接的请求中加?name,值任意

@RequestMapping(value ="/testRequestParam",params = {"name=username"})
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

如上,需要请求参数中有name,且值为username

<a href="anno/testRequestParam?name=username">RequestParam</a>

如上,值要对应。

4.headers

用于指定限制请求信息的头的条件

String[] headers() default {};

所以是数组形式

@RequestMapping(value ="/testRequestParam",headers = {"Accept"})
public String testRequestParam(@RequestParam(name="name") String username){
    System.out.println("执行了...");
    System.out.println(username);
    return "success";
}

如上需要Accept,可以通过F12进行查看