[springMVC学习]2、@RequestMapping请求映射

导读:本篇文章讲解 [springMVC学习]2、@RequestMapping请求映射,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

基本介绍

基本使用

作用于类和方法上

可以指定请求方法

指定请求参数

支持Ant资源请求

配合@PathVariable获取请求参数

一些简写形式

 总结


基本介绍

        在springmvc中,我们可以使用@RequestMapping注解来指定类或者方法来对相应的http请求进行响应,该注解作用于类或方法上。注意:该注解用于有@Controller注解修饰的类上面


基本使用

@Controller
@RequestMapping("/user")
public class UserController {
    
    @RequestMapping("/add")
    public void add(){
        System.out.println("add方法被调用~");
    }
}

        上面的add方法就会对 ip:prot/项目路径/user/add的GET和POST请求生效

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";

    @AliasFor("path")
    String[] value() default {};

    @AliasFor("value")
    String[] path() default {};

    RequestMethod[] method() default {};

    String[] params() default {};

    String[] headers() default {};

    String[] consumes() default {};

    String[] produces() default {};
}

         上面为@RequestMapping的源码,可以看见,能够指定很多的参数,下面来进行介绍


作用于类和方法上

@Target({ElementType.TYPE, ElementType.METHOD})

        该注解如果类上和方法上都有,那么要作用的url就是 /类配置值/方法配置值,如果类上没有配置,那么就是 /方法配置值


可以指定请求方法

        我们可以通过method来指定请求的方法get/post/delete/put等等,如果不指定,默认就是get和post 

    @RequestMapping(value = "/add",method = {RequestMethod.GET})
    public ModelAndView add() {
        System.out.println("add方法被调用~");
        return null;
    }

         下面为可以支持的方法

[springMVC学习]2、@RequestMapping请求映射


指定请求参数

        我们可以通过param来指定请求必须包含的参数,支持简单的表达式,如a=1,b!=2等,只有参数没有表示式就表示必须包含该参数,可以是任意值

    @RequestMapping(value = "/add",params = {"name!=tom"},method = {RequestMethod.GET})
    public ModelAndView add() {
        System.out.println("add方法被调用~");
        return null;
    }

支持Ant资源请求

        这个就是和正则表达式类似,?表示一个字符,*表示多个字符[只能匹配一层路径],**匹配多层路径

    @RequestMapping(value = "/**/f")
    public ModelAndView f(){
        return null;
    }

        上面的f方法会匹配如 /aaa/bb/cc/f的请求


配合@PathVariable获取请求参数

        如果有一个请求是  http://www.xxx.com/user/delete/id/1 ,请求参数是携带在url里面的,没有单独的请求参数,这时,我们就要配合使用@PathVariable来获取参数

    @RequestMapping("/update/{username}")
    public ModelAndView update(@PathVariable("username") String name) {
        System.out.println(name);
        return null;
    }

         @PathVariable作用于参数上,在@RequestMapping中使用{xxx}来表示占位符,而该位置的值就是通过@PathVariable来进行获取


一些简写形式

    @RequestMapping(value = "/update/{username}", method = {RequestMethod.GET})
    public ModelAndView update(@PathVariable("username") String name) {
        System.out.println(name);
        return null;
    }

         上面代码我们要求请求必须是get,如果要求请求是单个的某种形式,我们就可以使用简写方式,如下

    @GetMapping("/update/{username}")
    public ModelAndView update(@PathVariable("username") String name) {
        System.out.println(name);
        return null;
    }

         @GetMapping就是要求必须是get请求,除了这个,其他对应的请求也有相应的注解

[springMVC学习]2、@RequestMapping请求映射


 总结

        上面就是@RequestMapping的一些常见的用法,我们只需要在该注解上写上要处理的url即可,十分的方便。看该注解的源码,发现还有好几个参数都可以进行指定,如果感兴趣,可以自己再进行扩展一下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74822.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!