java - 对于 5 个构造函数参数中的 2 个,邮递员对 spring 的 post 调用始终为 null
问题描述
我提前道歉,因为我不知道如何表达这个问题。我有以下课程:
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private long id;
@Column(name = "username", length = 30)
private String username;
@Column(name = "email", length = 60)
private String email;
@Column(name = "birthday", length = 40)
private Date birthday;
@Column(name = "password", length = 60)
private String password;
@Column(name = "profilepic", length = 60)
private String profilePic;
public User() {
}
public User(String username, String email, String password, Date birthday, String profilePic) {
this.username = username;
this.email = email;
this.password = password;
this.birthday = birthday;
this.profilePic = profilePic;
}
public long getId() {
return id;
}
public String getUsername() {
return username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getProfilePic() {
return profilePic;
}
public void setProfilePic(String profilePic) {
this.profilePic = profilePic;
}
}
然后在 UserController 类中我有一个 addUser 方法:
@RequestMapping("/api")
@RestController
public class UserController {
private final UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository) {
this.userRepository = userRepository;
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity addUser(@ModelAttribute User user) {
userRepository.save(user);
return new ResponseEntity("User Created!", HttpStatus.OK);
}
@GetMapping
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
当我以表单数据或表单 urlencoded 形式发送邮递员请求时,它会保存一个新用户,但用户名和 profilepic 始终为空。到目前为止,我已经仔细检查了 15 次以上的拼写,所以我认为不是这样。为什么那些 2 总是空的?
解决方案
因为在您的Postman
身体中,您使用user_name
andprofilepic
而不是username
and profilePic
。还要添加 setter 的username
:
public void setUsername(String username) {
this.username = username;
}
推荐阅读
- sql - Firebird中的条件唯一索引
- android - 使用加速度计和磁场传感器寻找朝拜方向的逻辑
- android - 如何在 FloatingActionButton/Button Click 事件中使用协程
- django - Heroku 无法检测到我的 forms.py。“模块未找到错误在 /”
- python - Altair 中的聚合函数块图交互性
- jquery - 通过 Ajax 向 Laravel 控制器提交带有文本和图像的表单
- javascript - 是否可以将 PHP 查询变量传递给 JS 而不在 View Source 中显示它?
- bash - 在 Bash 中将 Matlab (Linux) 作为 Cron 作业运行的输出在电子邮件中包含许多“>>”
- assembly - 减去两个字符
- javascript - 如何防止表格数据元素合并到一列中?