天天看點

【知識整理】SpringMVC-JSR 303資料校驗

一.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";
	}
}