zoukankan      html  css  js  c++  java
  • SpringMVC总结二:Controller的请求映射方式(RequestMapping)简单介绍

    SpringMVC总结一:快速入门的基础上简单介绍一下请求映射的方式:

    1,标准映射规则

      1、 @RequestMapping可以设置在类上,也可以设置在方法上

      2、 请求的映射规则是:类上的RequestMapping + 方法上的RequestMapping

      3、 如果没有写 / ,SpringMVC会自动补全

      4、 类上的RequestMapping可以省略,这时直接用方法的RequestMapping访问

      5、 路径不可重复

    //加上Controller注解
    @Controller
    @RequestMapping("/test")//添加映射路径,可用来设置url
    public class HelloController {
        //映射注解
        @RequestMapping("/helloSpringMVC")
        public ModelAndView helloSpringMVC() {
            ModelAndView mv = new ModelAndView();
            mv.setViewName("hello");//设置视图名字
            mv.addObject("msg", "hello springmvc 注解版 ===" + new Date().toLocaleString());
            return mv;
        }
    }

    2,Ant风格映射

      1、? 匹配一个字符,如/hello? 可以匹配/hello1  /hello2,但是不能匹配/hello或者/hello12

      2、* 匹配0个或多个字符, 如/hello/*  可以匹配/hello/demo或者/hello/demo2

      3、**匹配0个或多个路径,如/hello/**  可以匹配/hello路径下的所有子路径,比如/hello/dd或者/hello/dd/cc/aa 

      4、最长匹配优先:

        现在有4中映射路径:1,/hello/demo  2,/hello/**/abc  3,/hello/**  4,/**

        如果请求为/hello/demo 那么优先匹配1,但是请求/hello/ddd则会匹配3,请求/hello/222/abc则匹配2,请求/ddd匹配4

    //加上Controller注解
    @Controller
    @RequestMapping("/test")//添加映射路径,可用来设置url
    public class HelloController {
        //ant风格映射
        @RequestMapping("/**/testAntMapping")
        public ModelAndView antMapping() {
            ModelAndView mv = new ModelAndView();
            mv.setViewName("hello");//设置视图名字
            mv.addObject("msg", "antMapping test ===" + new Date().toLocaleString());
            return mv;
        }
    }

    3,占位符映射

      例如商品的url路径一般都是.../product/xxxxx.html,这个xxxxx可以设置成占位符

      @RequestMapping(value="/product/{productid}") :占位符为productid,访问的路径可以是/product/123456或者/product/222等

      通过@PathVariable 可以提取 URI 模板模式中的{xxx}中的xxx变量。

    //加上Controller注解
    @Controller
    @RequestMapping("/test")//添加映射路径,可用来设置url
    public class HelloController {
        //占位符映射
        @RequestMapping("/pathvariable/{id}")
        public ModelAndView pathVariableMapping(@PathVariable("id") int id1) {
            ModelAndView mv = new ModelAndView();
            mv.setViewName("hello");//设置视图名字
            mv.addObject("msg", "pathvariable  id=" + id1);
            return mv;
        }
    }
  • 相关阅读:
    PHP命令行脚本接收传入参数的三种方式
    php中include()和require()的区别
    自定义一个可复用的BaseAdapter
    Java RandomAccessFile用法
    java中两字符串比较--compareTo方法
    机房内网电脑时间自动同步器
    Java中对JSONArray中的对象的某个字段进行排序
    jquery一个元素绑定了多个 click 事件,如何取消其中的一个
    js和Java分别正则匹配小数点后多余的0
    javascript 去掉小数末尾多余的零
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/9324774.html
Copyright © 2011-2022 走看看