欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

@PathVariable与@RequestParam的用法

程序员文章站 2022-05-19 15:57:08
...

@PathVariable

@RequestMapping(value = "/t1/add/{a}/{b}",method = RequestMethod.GET)
    public String he(Model model,@PathVariable(value = "a")int a,@PathVariable(value = "b") int b){
        model.addAttribute("msg",a+b);
        return "hello";
    }
@PathVariable(value = "a")int a,@PathVariable(value = "b") int b
//value="a"与value="b"对应地址栏add后面的/1/1

运行结果及地址栏如下
@PathVariable与@RequestParam的用法

不加@的用法

@RequestMapping(value = "/t2/add",method = RequestMethod.GET)
    public String he1(Model model,int a,int b)
    {
        model.addAttribute("msg",a+b+200);
        return "hello";
    }

参数int a,int b对应着地址栏a=2&b=3,可以将地址栏?后面的参数映射到方法俩面的参数,如下图地址栏所示

@PathVariable与@RequestParam的用法

假如地址栏的参数与方法参数不一致就会出错,如下图地址栏所示

@PathVariable与@RequestParam的用法

@RequestParam用法

另外如果你希望地址栏的参数是自订的,需要和方法的参数不一致,但是又能把地址栏的参数绑定到方法的参数上时,就需要@RequestParam注解,value属性就是你自定义的参数名称
 @RequestMapping(value = "t3/add",method = RequestMethod.GET)
    public String he2(Model model, @RequestParam(value = "num1") int a,@RequestParam(value = "num2") int b)
    {
        model.addAttribute("msg",a+b+100);
        return "hello";
    }

如下图所示
@PathVariable与@RequestParam的用法

前端传过来一个对象怎么办?

不着急

 @RequestMapping(value = "add",method = RequestMethod.GET)
    public String he2(Model model,对象 duixiang)
    {
        System.out.println(duixiang);
        return "hello";
    }

对应前端传过来的参数如下
@PathVariable与@RequestParam的用法
你会发现对象也能输出

相关标签: 小总结