一.JSR 303資料校驗
1.JSR 303是java為Bean資料合法性校驗提供的标準架構,它已經包含在javaEE 6.0中.JSR 303通過在Bean屬性上标注類似@Notnull\@Max等标準的注解指定校驗規則,并通過标準的驗證接口對Bean進行驗證。
2.使用流程
(1)加入hiernate validator驗證架構的jar包
(2)在SpringMVC配置檔案中添加<mvc:annotation-driven></mvc:annotation-driven>
(3)需要在bean的屬性上添加對應的注解
例:
@NotEmpty(message="使用者名不可為空") //校驗username是否為空,如果為空,會報錯“使用者名不可為空”
private String username;
@Past(message="出生日期填寫不正确") //校驗birth是否為正确的出生日期格式(驗證出生日期時間一定在目前時間之前)
@DateTimeFormat(pattern="yyyy-MM-dd") //按pattern屬性所規定的格式對日期進行格式化
private Date birth;
(4)在目标方法bean類型的前面添加@validate注解,這裡一個@Valid的參數後必須緊挨着一個BindingResult 參數,否則spring會在校驗不通過時直接抛出異常
@Controller
public class TestDateTimeFormat {
@RequestMapping("/testDateTimeFormat")
public String dataTimeFormat(@Valid User user, BindingResult result){
if(result.hasErrors()){
List<ObjectError> errorList = result.getAllErrors();
for(ObjectError error : errorList){
System.out.println(error.getDefaultMessage());
}
}
System.out.println(user);
return "modelDataTest";
}
}