일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 화면보호기 실행 방지
- 스킵 네비게이션
- 탭과 클릭 focus 이벤트 구분
- 뒤로가기 방지
- 시퀀스 초기화 프로시져
- 근무날짜 경력계산
- 엑셀 UPDATE
- 여러줄 한줄로
- 트리거 이벤트
- 전화번호 형식 자동 변환
- eclipse 다국어
- i_tail
- jQuery 백스페이스
- 폴더만 남기고 파일만 삭제
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- taglib 만들기
- JSP Standard Tag Library (JSTL) Tutorial
- jquery_api #jquery #api
- css 말줄임
- jquery_cheat_sheet #jquery_quick_api_reference
- javascript 낙타
- 허드슨 포트 변경
- eclipse 폰트
- javascript Camel
- ajax 배열 파라미터
- ajax 배열
- Spring Annotation
- #오라클 데이터 복구
- 팝업 종료
- eclipse properties
- Today
- Total
Hi~ Summers!!
java Annotation 본문
# NotNull.java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NotNull {
public String message() default "";
}
Target에 Method라고 주면 Method에 적용하는 annotation이 된다.
# Form.java
public class Form {
@NotNull(message="제목을 잘못 입력하셨습니다.")
private String subject = "";
<생략>
# Validation.java
for(Field field : obj.getClass().getDeclaredFields()) {
boolean check = false;
if(trgFieldNames != null && trgFieldNames.length > 0) {
for(String trgFieldName : trgFieldNames) {
if( trgFieldName.equals(field.getName()) ) {
check = true;
}
}
} else {
check = true;
}
if(check) {
// 일단 Not null만 체크한다.
if(field.isAnnotationPresent(NotNull.class)) {
valChkResult = checkNotNull(field, obj);
// 결과가 false이면 바로 리턴
if(!valChkResult.isResult()) {
return valChkResult;
}
}
}
}
private static ValidationResult checkNotNull(Field field, Object obj) throws Exception {
ValidationResult valChkResult = new ValidationResult();
try {
for(Annotation anno : field.getAnnotations() ) {
String fieldName = field.getName();
String methodName = "get" + fieldName.substring(0,1).toUpperCase() + fieldName.substring(1);
Method srcMethod = obj.getClass().getDeclaredMethod(methodName, null);
String fieldValue = StringUtil.bvl(srcMethod.invoke(obj, null));
if( !StringUtil.isNotNull(fieldValue) ) {
NotNull annObj = field.getAnnotation(NotNull.class);
String resultMsg = StringUtil.bvl(annObj.message());
if(resultMsg.equals("")) {
resultMsg = "fail";
}
valChkResult.setResult(false);
valChkResult.setMessage(resultMsg);
valChkResult.setFieldName(fieldName);
valChkResult.setFieldValue(fieldValue);
}
}
} catch(Exception ex) {
ex.printStackTrace();
throw ex;
}
return valChkResult;
}
<참고>
http://blog.daum.net/oraclejava/15870128
http://blog.naver.com/jdi9526/130162780013
http://blog.naver.com/jdi9526/130162916506