• spingMvc 中@RequestMapping 注解总结


    1)最基本的,方法级别上应用,例如: 
        

     

    @RequestMapping(value="/departments")  

    public String simplePattern(){  

      

      System.out.println("simplePattern method was called");  

      return "someResult";  

      

    }  

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


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

    2) 参数绑定 
       

     

    @RequestMapping(value="/departments")  

    public String findDepatment(  

      @RequestParam("departmentId") String departmentId){  

        

        System.out.println("Find department with ID: " + departmentId);  

        return "someResult";  

      

    }  

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


        
      形如这样的访问形式: 

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

    3 REST风格的参数
       

     

    @RequestMapping(value="/departments/{departmentId}")  

    public String findDepatment(@PathVariable String departmentId){  

      

      System.out.println("Find department with ID: " + departmentId);  

      return "someResult";  

      

    }  

    @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风格的参数 

    4 REST风格的参数绑定形式之2 
       先看例子,这个有点象之前的: 

     

    @RequestMapping(value="/departments/{departmentId}")  

    public String findDepatmentAlternative(  

      @PathVariable("departmentId") String someDepartmentId){  

      

        System.out.println("Find department with ID: " + someDepartmentId);  

        return "someResult";  

      

    }  

    @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 

    5url中同时绑定多个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="/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";  

    }  

    @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.

  • 相关阅读:
    iOS多图上传
    iOS强制横屏
    pod导入融云路径报错解决办法
    iOS 制作一个动态库
    iOS ProtocolBuffer使用介绍
    iOS 静态库与动态库的区别
    pod命令创建私有库详解【引用其他私有库、oc、Swift混编】
    M1 安装homebrew详解
    M1 执行pod install 报错
    iOS 消息转发机制
  • 原文地址:https://www.cnblogs.com/javaMan/p/jackyrong1.html
Copyright © 2020-2023  润新知