1.@JsonView註解java
* 使用接口聲明多個視圖 * 在值對象的get方法上指定視圖 * 在controller方法上指定視圖
public class User { @JsonView(UserSimpleView.class) public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } //在get方法上使用接口 @JsonView(UserDetailView.class) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @JsonView(UserSimpleView.class) public String getId() { return id; } public void setId(String id) { this.id = id; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } private Date birthday; private String id; private String username; //notblank註解聲明密碼不可爲空 @NotBlank private String password; //聲明視圖接口 public interface UserSimpleView{}; public interface UserDetailView extends UserSimpleView{}; }
@PostMapping //在controller上使用註解 //返回簡單視圖,即只返回username和id,在WEB開發中,一般不返回密碼,安全性考慮 @JsonView(User.UserSimpleView.class) //使用Valid註解,校驗User對象中的notblank,BindingResult能夠拿到和處理錯誤信息,不然沒法進入方法體,不能輸出有效的錯誤提示 public User creat(@Valid @RequestBody User user, BindingResult errors){ //@RequestBody映射請求體到java方法參數 if(errors.hasErrors()){ System.out.println("密碼不可爲空"); System.out.println(errors.getAllErrors().toString()); } System.out.println(user.getUsername()); System.out.println(user.getPassword()); System.out.println(user.getId()); System.out.println(user.getBirthday()); user.setId("1"); return user; }