@RequestParam
接收的参数是来自requestHeader,即请求头中
@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。
例子
@RequestMapping("/testRequestParam")
//name属性解决前后端参数名称不一致问题,把jsp页面传递过来的name属性赋值给username。
public String testRequestParam(@RequestParam(name="name") String username){
System.out.println(username);
return "success";
}
jsp页面
<a href="anno/testRequestParam?name=哈哈">RequestParam</a>
@RequestBody
接收的参数是来自requestBody,即请求体中。可以解析Body中json格式的数据。一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。
用于获取请求体的内容 key = value格式。get请求不适用。因为get方式没有请求体,它把内容都封装到地址栏了。
例子
/**
* 获取到请求体的内容
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println(body);
return "success";
}
jsp表单
<form action="anno/testRequestBody" method="post">
用户姓名:<input type="text" name="username" /><br/>
用户年龄:<input type="text" name="age" /><br/>
<input type="submit" value="提交" />
</form>
输出结果(结果会以字符串的方式输出)
@PathVariable
接收请求路径中占位符的值。用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符
例子
/**
* PathVariable注解
* @return
*/
@RequestMapping(value="/testPathVariable/{sid}")
public String testPathVariable(@PathVariable(name="sid") String id){
System.out.println(id);
return "success";
}
注意 :参数名sid必须保持一致
jsp链接
<a href="anno/testPathVariable/10">testPathVariable</a>