0
我有一个简单的数据传输类春@Valid适用于表单请求,但不与JSON身体
@Data
public class UserDto {
@NotNull
@NotEmpty
private String username;
@NotNull
@NotEmpty
private String password;
@NotNull
@NotEmpty
private String email;
}
在我的控制器中我想使用的对象。
@PostMapping("https://stackoverflow.com/users/create")
public ResponseEntity<Object> createUser(@ModelAttribute("UserDto") @RequestBody @Valid UserDto accountDto, BindingResult bindingResult, HttpServletRequest request) {
System.out.println(accountDto);
System.out.println(accountDto.getUsername());
System.out.println(accountDto.getPassword());
System.out.println(bindingResult.hasErrors());
return new ResponseEntity<>("success", HttpStatus.OK);
}
我正在使用邮递员来测试我的api。这些请求在以form
或x-www-form-urlencoded
发送时可以正常工作。我得到以下的输出:
UserDto(用户名= dsfssf,密码= dsfsdgfsg,[email protected])
dsfssf
dsfsdgfsg
假
但是,将请求作为JSON对象发送时,如
{"username": "ssss", "password": "test", "email": "[email protected]" }
所有我得到的是
UserDto(用户名= NULL,密码= NULL,电子邮件= NULL)
空
空
真正
您是否尝试删除@ModelAttribute并对其进行测试? –