zoukankan      html  css  js  c++  java
  • 9.SpringMVC注解式开发-处理器的请求映射规则的定义

    1.对请求URI的命名空间的定义

      @RequestMapping的value属性用于定义所匹配请求的URI。但对于注解在方法上和注解在类上,

      其value 属性 所指定的URI,意义是不同的

      

      一个@Controller 所注解的类中,可以定义多个处理器方法。当然,不同的处理器方法 所匹配的 URI 是不同的。

      这些不同的 URI 被指定在注解于方法之上的@RequestMapping value 属性中。

      但若这些请求具有相同的 URI 部分,则这些相同的 URI,可以被抽取到注解在 类之上的@RequestMapping  value 属性中。

      此时的这个 URI 称为命名空间。换个角度说,要访问处理器的指定方法,必须要在方法指定 URI 之前加上处理器类前定 义的命名空间。

     

     1 @Controller   //表示当前类 是处理器
     2 @RequestMapping("/test")    //@RequestMapping注解一个类,可以将抽取出 方法中 相同的  uri,作为 这个处理器的 命名空间
     3                             //要 访问处理器的 指定方法,必须要在指定方法的URI 之前 加上命名空间
     4 public class MyController {
     5     @RequestMapping(value={"/hello.do","/helloworld.do"})
     6     public ModelAndView method1(HttpServletRequest request,
     7             HttpServletResponse response)  {
     8         ModelAndView mv = new ModelAndView();
     9         mv.addObject("message", "Hello method1!");
    10         mv.setViewName("/WEB-INF/jsp/hello.jsp");
    11         return mv;
    12     }

     

    2.请求URI中通配符的作用

      a)资源名称中使用通配符

        在请求的资源名称中使用通配符,表示请求的资源名称中只要包含指定的字符即可完成匹配

        例如法中/some*.do 表示只要求的名称 some 头即

        /*other.do 表示的意思是,只要请求的资源名称以 other 结尾即可。

      b)资源路径中使用通配符

        在资源路径中使用通配符,有两种用法:路径级数的精确匹配、路径级数的可变匹配  

        /xxx/*/show.do表示在 show.do 的资源名称前面,只能有两级路径,

        第一级必须是/xxx,而 第二级随意。这种称为路径级数的精确匹配。

        /xxx/**/show.do表示在 show.do 的资源名称前面,必须以/xxx 路径开头,

        而其它级的路径 是否包含,若包含又包含几级,各级又叫什么名称,均随意。这种称为路径级数的可变匹配。

    3.对请求提交方式的定义(GET/POST)

      对于@RequestMapping,其中有一个属性method,用于对被注解方法所处理请求的进行限制

      即只有满足该method属性指定的提交方式的请求,才会执行该注解方法

      Method 属性取值为RequestMethod 枚举常量。常用的为RequestMethod.GET、RequestMethod.POST

    1 @RequestMapping(value="/hello*.do",method=RequestMethod.POST)

    4.对请求中携带参数的定义

      @RequestMapping中params属性中定义了请求中必须携带的参数的要求

      @RequestMapping(value=”/xxx.do”, params={“name”,”age”}) :要求请求中必须携带请求 参数 name  age

      @RequestMapping(value=”/xxx.do”, params={“!name”,”age”}) :要求请求中必须携带请求 参数 age,但必须不能携带参数 name

      @RequestMapping(value=”/xxx.do”, params={“name=zs”,”ag=23”})  

       要求请求中必须携带请求参数 name,且其值必须为 zs;必须携带参数 age,其其值必须为 23

      @RequestMapping(value=”/xxx.do”, params=“name!=zs”)  求参数 name,且其值必须不能为 zs

     

  • 相关阅读:
    display:inline、block、inline-block的区别
    CSS选择器优先级总结
    bootstarp模板01
    Vue深度学习(6)- 组件
    在Ubuntu下安装mongodb
    Ajax高级应用---Comet
    ubuntu安装
    linux使用
    跨浏览器的CORS
    防止伪造跨站请求
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7406626.html
Copyright © 2011-2022 走看看