只讲最直接和使用上的区别,深层的差异请移步百度
- @RequestParam
服务器端,需要把每个参数都写出来:
@RequestMapping("/updatestate")
public String updateUserState(@RequestParam("id")int id,@RequestParam("state")boolean state){
// 修改数据库,并返回修改结果,1表示成功,0表示失败
int updateFlag = sportUserMapper.updateState(id, state);
System.out.println(updateFlag);
return updateFlag+"";
};
前端请求,只能用get
方法,不能用post
:
let query = { id: id, state: state };
const res = await this.$http.get("updatestate", { params: query });
- @RequestBody
服务器端,需要跟一个实例对象,不用将每个参数都写出来:
@RequestMapping("/adduser")
public String addUser(@RequestBody SportUser sportUser){
int addFlag = sportUserMapper.addNewUser(sportUser.getUsername(),sportUser.getPassword(),sportUser.getEmail(),sportUser.getRole(),sportUser.getState());
// int addFlag = sportUserMapper.addNewUser("leon111","1234","qqmail","普通用户",true);
return addFlag+"";
这里的SportUser sportUser
是需要创建的一个SportUser
实例:
package com.wyh.springbootmybatisdemo.pojo;
public class SportUser {
// 主键,标识自增
private int id;
// 用户名,密码,邮箱,角色
private String username,password,email,role;
// 状态
private boolean state;
public SportUser() {
}
public SportUser(String username, String password, String email, String role, boolean state) {
this.username = username;
this.password = password;
this.email = email;
this.role = role;
this.state = state;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public boolean getState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
@Override
public String toString() {
return "SportUser{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
", role='" + role + '\'' +
", state=" + state +
'}';
}
}
前端请求,只能用post
,不能用get
:
let query = { id: id, state: state };
const res = await this.$http.post("adduser", query);
- 总结
@RequestParam
跟每个参数,用get
,
@RequestBody
跟一个实例对象,用post
。
另外需要注意,
get
的参数是(“请求地址”,{params:请求集合)
post
的参数是(“请求地址”,请求集合)