修改User實體類
public class User {
public interface UserSimpleView {};//用戶簡單視圖
public interface UserDetailView extends UserSimpleView {};//用戶詳細視圖
@JsonView(UserSimpleView.class)
private String id;
@JsonView(UserSimpleView.class)
private String username;
/**
* 驗證註解的元素值不爲空(不爲null、去除首位空格後長度爲0)
* 只應用於字符串且在比較時會去除字符串的空格
*/
@NotBlank(message = "密碼不能爲空")
@JsonView(UserDetailView.class)
private String password;
@JsonView(UserSimpleView.class)
@Past(message = "生日必須是過去時間")
private Date birthday;
控制器
//模擬插入數據
@PostMapping
@JsonView(User.UserSimpleView.class)
//@RequestBody主要用來接收前端傳遞給後端的json字符串(映射請求體到java方法的參數)
//當參數校驗@Valid失敗,則將錯誤信息存於BindingResult裏面
public User create(@Valid @RequestBody User user, BindingResult errors){
if(errors.hasErrors()){
errors.getAllErrors().stream().forEach(error -> System.out.println(error.getDefaultMessage()));//打印錯誤信息
}
System.out.println(user.getId());
System.out.println(user.getUsern