SpringMVC中@ReqeustParam和@PathVariable的注解都是从request中接收请求,两个都可以接收请求,关键不同点是@RequestParam是直接从request中取值,而@PathVariable是从URL模板中取值!
@RequestParam注解在SpringMVC中的应用
首先看一个前端请求
http://localhost:8080/springmvc/hello/101?param1=10¶m2=20
根据以上请求可以如下定义请求接受信息
public String getDetails(
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
...
}
@RequestParam
支持下面四种参数格式
defaultValue
如果本次请求没有携带这个参数,或者参数为空,那么就会启用默认值name
绑定本次参数的名称,要跟URL请求地址一样required
这个参数不是必须的,value
跟name一样的作用,是name属性的一个别名
@PathVariable注解在SpringMVC中的应用
首先还是看一个请求地址
http://localhost:8080/springmvc/hello/101?param1=10¶m2=20
接下来看SpringMVC的接收处理
@RequestMapping("/hello/{id}")
public String getDetails(@PathVariable(value="id") String id,
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
.......
}
可以看到这个请求是使用@PathVariable接收到101的动态id值!
另外:PathVariable一般用于get和delete请求,RequestParam一般用于post请求。