分组校验
在做restful 表单校验的时候会有一个尴尬的时候,就是如果我们方法在做保存和更新的时候所校验的的同一个类的不同的字段是不同的,那么我们用统一的dto 的时候,就会特别难处理,今天无意中看到spring有一种分组校验的功能,亲自测试,表示很好用
接口
public interface First {
}
public interface Second {
}
实体类
public class UserModel {
@NotNull(message ="{id.empty}", groups = { First.class })
private int id;
@NotNull(message ="{username.empty}", groups = { First.class, Second.class })
private Stringusername;
@NotNull(message ="{content.empty}", groups = { First.class, Second.class })
private Stringcontent;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public StringgetUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public StringgetContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
web 层
@RestController
public class ValideController {
@RequestMapping(value ="/save", method = RequestMethod.POST)
public Stringsave(@RequestBody @Validated( { Second.class }) UserModel userModel, BindingResult result) {
if (result.hasErrors()) {
return "validate/error";
}
return "redirect:/success";
}
@RequestMapping(value ="/update", method = RequestMethod.POST)
public Stringupdate(@Validated( { First.class, Second.class }) UserModel user, BindingResult result) {
System.out.println(result.getFieldError().toString());
if (result.hasErrors()) {
return "validate/error";
}
return "redirect:/success";
}
}
网友评论