@RequestMapping的分类

@RequestMapping的分类

类级别的和方法级别的

 @RequestMapping的几种形式:

  @RequestMapping(method = RequestMethod.GET)

  @RequestMapping(value="/{day}", method = RequestMethod.GET)//day为方法中的参数

  @RequestMapping   (value="/new", method = RequestMethod.GET)

@RequestMapping是一种通过匹配URL路径来访问相应页面的

将@RequestMapping放在类级别上 

这可令它与方法级别上的@RequestMapping注解协同工作,取得缩小选择范围的效果,如下:

@RequestMapping("/a")//类级别,可以不需要,如果要了,下面所有的请求路径前都需要加入 /a  

public class ccccontroller{ 

  @RequestMapping("/b")//方法级别,必须有,决定这个方法处理哪个请求,如果有类级别 /a/b    

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

  @RequestMapping(value="/b", method=RequestMethod.GET, params="type=checking")    

  @RequestMapping public String show() { 

   //如果没有类级别的就直接请求/b  return; 

} }

第一个是一种简写方式,匹配路径为 “/a/b”;

第二个方法级的请求映射和类级别的映射结合,当HTTP方法是POST时与路径“/a/b”匹配; 

第三个添加了一个要求,就是名为“type”的请求参数和其值“checking”都需要在请求中出现;

第四个根本就没有指定路径,这个方法匹配所有的 HTTP方法,如果有必要的话可以用它的方法名。下面改写我们的方法,使它可以依靠方法名进行匹配。

2:问题:接收用户请求参数 值

    1)请求1: /test/start.do?name=zhangsan

       请求2: /test/start/zhangsan.do

       在请求2中 将参数作为请求URL 传递 

        采用 URL模板

    2)@RequestMapping("/start/{name}")    这个name  随便  啥都可以

         public String start(@PathVariable("name") string name){       反正和上面的对应

             return      方法体里面就可以直接获得参数

        }

    3)包含多个  @RequestMapping ("/start/{name}/{age}")


猜你喜欢

转载自endual.iteye.com/blog/1740350