两种方式传递参数
x-www-form-urlencoded 格式传参
- Controller 方法定义:
/**
* 表单格式传参数 x-www-form-urlencoded
* @param user
*/
@PostMapping("/saveUser")
public void saveUser(User user){
System.out.println(user);
}
在这个例子中,请求会将数据编码为 x-www-form-urlencoded 格式,例如 key1=value1&key2=value2
。Spring MVC 将自动将这些数据解析为对应的Java对象(这里是User对象)并传递给saveUser
方法。
JSON 格式传参
- Controller 方法定义:
/**
* JSON格式传参
* @param user
*/
@PostMapping("/saveUser")
@ResponseBody
public void saveUser(@RequestBody User user){
System.out.println(user);
}
在这个例子中,请求会以 JSON 格式传递数据。通过使用 @RequestBody
注解,Spring MVC 将请求体中的JSON数据转换为对应的Java对象(User对象),并将其作为方法参数传递给 saveUser
方法。
区别和注意事项
-
数据格式不同:
-
x-www-form-urlencoded:适合简单的键值对数据,常用于表单提交。
- JSON:适合复杂结构和大量数据的传递,更灵活且支持嵌套结构。
-
方法参数注解:
- 普通对象参数(如第一个例子中的User对象):Spring MVC 自动处理 x-www-form-urlencoded 格式的请求数据。
- @RequestBody 注解:用于处理 JSON 格式的请求数据,告诉Spring MVC从请求体中读取数据并转换成Java对象。
给前端提供反馈
/**
* JSON格式传参
* @param user
* @return HttpResult 包含操作结果信息
*/
@PostMapping("/saveUser")
@ResponseBody
public HttpResult saveUser(@RequestBody User user){
System.out.println(user);
// 保存用户逻辑
// 可以假设成功保存用户信息后返回操作成功的消息
return HttpResult.ok("用户保存成功!");
}
在Spring MVC中通过JSON格式传递参数,并返回一个包含操作结果信息的HttpResult
对象。这种方式在实际开发中确实非常重要,可以给前端提供清晰的操作反馈