对于5个构造函数参数中的2个,邮递员对spring的调用始终为null

问题描述 投票:0回答:1

我提前道歉,因为我不确定如何说出这个问题。我有以下课程:

@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();
}

}

当我以form-data或form-urlencoded方式发送邮递员请求时,它会保存一个新用户,但username和profilepic始终为null。我现在仔细检查了15次以上的拼写,所以我不认为就是这样。为什么那些2总是空的?

postman body

java spring rest spring-boot postman
1个回答
1
投票

因为在你的Postman身体你使用user_nameprofilepic而不是usernameprofilePic。还为username添加setter:

public void setUsername(String username) {
    this.username = username;
}
© www.soinside.com 2019 - 2024. All rights reserved.