java play Framework 어노테이션 이외의 validation을 붙이는 방법

play2.4에서 입력 확인 정보
@Required(message = "名前を入力してください。")
@Pattern(value = "^(?!.*abc).+$", message = "abcという文字列は使えません")
public String name;

@MinLength(value = 4, message = "4文字以上入力してください。")
@MaxLength(value = 16, message = "16文字以下で入力してください。")
@Pattern(value = "^[a-zA-Z0-9]+$", message = "半角英数字のみで入力してください。")
public String userName;

같이 @에서하는 유효성 검사 이외에도
유효성 검사를 추가하려는 경우.

이번에는 기간 입력 양식에
밸리데이션을 붙이고 싶었기 때문에 다음과 같이 했다.
//期間初日
@Required(message = "未入力です"。)
@Formats.DateTime(pattern = "yyyy/MM/dd")
public Date start_date;

//期間最終日
@Required(message = "未入力です"。)
@Formats.DateTime(pattern = "yyyy/MM/dd")
public Date end_date;


// バリデーションの追加
public List<ValidationError> validate() {
        List<ValidationError> errors = new ArrayList<ValidationError>();
        if(!validateDateCompare(start_date, end_date)){
            errors.add(new ValidationError("date", "期間最終日は期間初日より未来の日付を入力してください。"));
        }
        return errors.isEmpty() ? null : errors;
}

    // 日付を比較
public boolean DateCompare(Date start_date, Date end_date) {
        int diff = start_at.compareTo(end_date);
        if (diff == 0 || 0 > diff) {
            return true;
        } else {
            return false;
        }
}


view에서의 에러 메세지 표시 방법은 @의 밸리데이션과 같다.List<ValidationError> errorsList<ValidationError> 이외에String 이나 Map<String,List<ValidationError>> 로 해도 사용할 수 있다.

참고 자료 공식 문서 출처

좋은 웹페이지 즐겨찾기