【发布时间】:2017-11-15 16:31:57
【问题描述】:
我有一个简单的数据传输类
@Data
public class UserDto {
@NotNull
@NotEmpty
private String username;
@NotNull
@NotEmpty
private String password;
@NotNull
@NotEmpty
private String email;
}
在我的控制器中,我想使用该对象。
@PostMapping("/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,电子邮件=ssfds@dsgfsg.com)
dsfssf
dsfsdgfsg
假
但是,当将请求作为 JSON 对象发送时,例如
{"username": "ssss", "password": "test", "email": "samauaa@sdfsdfsd.com" }
我得到的只是
UserDto(用户名=null,密码=null,电子邮件=null)
空
空
是的
【问题讨论】:
-
您是否尝试过删除@ModelAttribute 并对其进行测试?
标签: json spring validation spring-mvc spring-validator