requestmapping注解访问404_Spring注解 @RequestParam, @PathVariable, @PathParam

c73490c4617929f80570091b8ff121c3.png

@RequestParam 和 @PathVariable 一样,都是用于从request请求中绑定参数的,区别在于:@RequsetParam是用于接收URL的查询串中的相应参数及请求体中的参数;@PathVariable 和 @PathParam 是用于接收URL中占位符的参数

@RequestParam 示例

接收请求行中URL后的查询串参数

现有Controller如下,当访问URL为 localhost:8080/demo1?name=Aaron&age=18 时,将会把查询串(name=Aaron&age=18)中的参数按名绑定到demo1方法的相应形参上

    @RequestMapping(value="/demo1")
    public void demo1(@RequestParam String name, @RequestParam int age ){
        System.out.println("get name is : " + name + ", age: " + age);
        return;
    }

控制台输出如下:

    get name is : Aaron, age: 18

Note: 后端如果是分别接收前端传过来的多个基本类型参数,可以使用上文所示的@RequsetParam来分别按名进行绑定即可。但是如果参数数量过多,上述写法下的方法中的形参列表将会过长导致可读性降低。可以直接使用一个POJO对象来进行绑定接收,而不需要使用@RequestParam注解,其自动将参数按名绑定到对象的属性中。如下所示,形参使用Student对象进行数据绑定,其含有name,age属性

    @RequestMapping(value="/demo1")
    public void demo1(Student student){
        System.out.println("get name is : " + name + ", age: " + age);
        return;
    }

接收请求体中的参数

当请求头中的 Content-Type 类型为:multipart/form-dataapplication/x-www-form-urlencoded 时,该@RequestParam注解同样可以把请求体中相应的参数绑定到Controller方法的相应形参中

    @Controller
    @RequestMapping("receive")
    public class receiveTest {
        @RequestMapping("/receiveFile")
        @ResponseBody
        public String receiveFile(@RequestParam(required = false, value = "file2") MultipartFile File2, @RequestParam String FirstName, @RequestParam String LastName) {
            System.out.println("FirstName : " + FirstName);
            System.out.println("LastName : " + LastName);
            return "Success";
        }
    }

c231e7db6eb0d45f3eeaac7e5dbb8c8e.png

Note: 后端如果是分别接收前端传过来的多个基本类型参数,可以使用上文所示的@RequsetParam来分别按名进行绑定即可。但是如果参数数量过多,上述写法下的方法中的形参列表将会过长导致可读性降低。可以直接使用一个POJO对象来进行绑定接收,而不需要使用@RequestParam注解,其自动将参数按名绑定到对象的属性中。如下所示,形参使用Student对象进行数据绑定,其含有name,age属性

    @RequestMapping(value="/demo1")
    public void demo1(Student student){
        System.out.println("get name is : " + name + ", age: " + age);
        return;
    }

@PathVariable 示例

现有Controller如下,当访问URL为 localhost:8080/demo2/Bob/12 时,将会把URL占位符的的参数按名绑定到demo2方法的相应形参上

    @RequestMapping(value="/demo2/{name}/{id}")   
    public void demo2(@PathVariable String name, @PathVaribale int id)
    {
        System.out.println("get name is : " + name + ", id: " + id);
        return;
    }

控制台输出如下:

    get name is : Bob, id: 12

@PathParam 注解

@PathParam 注解 也是用于从绑定URL中占位符的参数,只不过其是JBoss下的实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值