springmvc中@RequestParam和@PathVariable的区别和使用

两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,url不同

一、@RequestParam的url是这样的: http://host:port/.../test?>param1=123&param2=345

@RequestMapping(value="/test",method=RequestMethod.GET) 
public String count(@RequestParam("param1") int one, @RequestParam("param2") int two) { 
    calculator.count(one, two);
    return "viewer"; 
}



二、@PathVariable的url是这样的: http://host:port/.../test/image

@RequestMapping(value="/test/{image}",method=RequestMethod.GET) 
public String store(@PathVariable("image") String image, Model model) { 
    model.addAttribute(report.find(image));
    return "imager";
}




因为方法的参数名和占位符的名称相同,所以可以去掉@PathVariable中的value属性:

@RequestMapping(value="/test/{image}",method=RequestMethod.GET) 
public String test(@PathVariable String image, Model model) { 
    model.addAttribute(report.find(image));
    return "imager";
    
}

但是,如果想要重命名参数名时,必须同时修改占位符的名称,使相互匹配。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值