spingMVC关于@RequestMapping的几种用法

来源:互联网 发布:大表妹是什么网络意思 编辑:程序博客网 时间:2024/05/21 14:08

spingMVC关于@RequestMapping的几种用法


一、跳转

    @RequestMapping(value="/departments")      public String simplePattern(){        System.out.println("6666");        return "someResult";     }  

则访问http://localhost/xxxx/departments的时候,会调用 simplePattern方法了

二、 参数绑定

@RequestMapping(value="/departments")  public String findDepatment(@RequestParam("departmentId") String departmentId){        System.out.println("Find department with ID: " + departmentId);          return "someResult";     }  

形如这样的访问形式:

/departments?departmentId=23就可以触发访问findDepatment方法了

三、 REST风格的参数

    @RequestMapping(value="/departments/{departmentId}")      public String findDepatment(@PathVariable String departmentId){        System.out.println("Find department with ID: " + departmentId);        return "someResult";      }  

形如REST风格的地址访问,比如:
/departments/23,其中用(@PathVariable接收rest风格的参数

四、REST风格的参数绑定形式之2

对比上面

    @RequestMapping(value="/departments/{departmentId}")      public String findDepatmentAlternative(@PathVariable("departmentId") String someDepartmentId){          System.out.println("Find department with ID: " + someDepartmentId);          return "someResult";      }  

这个有点不同,就是接收形如/departments/23的URL访问,把23作为传入的departmetnId,,但是在实际的方法findDepatmentAlternative中,使用
@PathVariable(“departmentId”) String someDepartmentId,将其绑定为
someDepartmentId,所以这里someDepartmentId为23

五、url中同时绑定多个id

    @RequestMapping(value="/departments/{departmentId}/employees/{employeeId}")      public String findEmployee(@PathVariable String departmentId,@PathVariable String employeeId){          System.out.println("Find employee with ID: " + employeeId + " from department: " +departmentId);          return "someResult";      }  

六、正则表达

    @RequestMapping(value="/{textualPart:[a-z-]+}.{numericPart:[\\d]+}")      public String regularExpression(@PathVariable String textualPart,@PathVariable String numericPart){          System.out.println("Textual part: " + textualPart +  ", numeric part: " + numericPart);          return "someResult";      }  

比如如下的URL:/sometext.123,则输出:
Textual part: sometext, numeric part: 123.

1 0
原创粉丝点击