boolean 필드에 Lombok @Getter 애너테이션 사용 하는 경우

김학준·2024년 6월 17일
0

게시판

목록 보기
9/44

문제 상황

페이지네이션을 사용하는 list.jsp의 일부가 표시되지 않고 다음과 같은 오류 메시지가 발생한다.

오류 메시지

javax.el.PropertyNotFoundException: [isPrev] 특성이 [com.portfolio.www.util.Pagination] 유형에 없습니다.
at org.apache.jsp.WEB_002dINF.views.forum.notice.list_jsp._jspx_meth_c_005fif_005f0(list_jsp.java:351)

오류 발생 부분

Pagination.java 일부

@Setter
@Getter
public class Pagination {
	private int totalPosts; // 전체 게시글 개수
	private int currentPage; // 현재 페이지 번호
	private int postsPerPage; // 한 페이지 당 게시글 개수

	public static int DISPLAY_PAGE_NUM = 10; // 한 페이지 당 출력할 게시글

	private int totalPages; // 전체 페이지 개수
	private int startPageNum; // 시작 페이지 번호
	private int endPageNum; // 끝 페이지 번호
	private boolean isPrev; // 이전 화살표 표시 여부
	private boolean isNext; // 다음 화살표 표시 여부

list.jsp의 일부

<!-- 이전 화살표 -->
<c:if test="${pagination.isPrev}">

<!-- 다음 화살표 -->
<c:if test="${pagination.isNext}">

해결 방법

Lombok의 @Getter 애너테이션은 boolean 타입의 필드를 is[앞 글자를 대문자로 변경한 필드의 이름] 다음과 같이 변경한다. 따라서 위와 같이 boolean 타입의 필드 이름이 isPrev이면 getter를 만들어주지 못해 위와 같은 오류가 발생하는 것이다. 그렇기 때문에 boolean 타입의 필드 이름을 각각 prev, next로 바꾸어주었다.

0개의 댓글