본문 바로가기
SPRING

lombok 사용 시 두번째 단어 대문자 일 경우 EL 표현식에서 객체 접근 시 javax.el.PropertyNotFoundException일 경우

by J데빌 2020. 5. 17.

디비 필드명(스네이크 케이스 : 단어 사이를 _ 로 나누는 방식)

VO 객체 클래스(카멜 케이스 : 첫 단어의 첫 글자는 소문자, 두 번째 글자부터는 첫 글자를 대문자로 쓰는 방식)

EL 표현식

<c:forEach items="${accountVO}" var="VO">
	${VO.uId}
</c:forEach>

 

이러한 상황일 경우 ${VO.uId}로 접근 시 javax.el.PropertyNotFoundException Property [uId] not found on type에러가 난다. 몇 까지 테스트 결과 lombok라이브러리를 이용한 getter, setter접근 일 경우 ${VO.UId}로 접근해야 사용이 가능했다. lombok이 자동으로 카멜 케이스를 이용한 getter, setter메서드를 자동으로 만들 때 getUId(), getUKey()로 생성하기 때문에 이러한 문제가 발생한 것이다. getter, setter메서드명은 get, set다음에 이어지는 단어는 반드시 대문자로 작성되어야 하기 때문인데 여기서 문제는 두 번째 글자도 대문자이기 때문에 구분이 안되어져서 이런 문제가 생기는 것 같다. 이클립스 Getter/Setter 자동 생성 도구인 Gennerate Getters and Setters로 생성하면 메서드명이 getuId(), getuKey()로 생성되어 ${VO.uId}로 접근이 가능했다. 그래서 첫 번째 단어가 한 자이고 소문자인 경우에 카멜 케이스를 사용할 경우 이러한 사항들을 주의하여 사용하여야 한다.

 

 

댓글