JSTL) 현재날짜 불러서 분기하기

청룡·2022년 2월 13일

프로젝트 진행중 만료 여부를 나타내야 했는데 코어로직이 아닌 jsp에서 해결하고 싶었다.

코어로직인 자바쪽에서 현재날짜와 만료날짜를 비교해서 만료여부를 알려주는 작업을 진행할 수도 있겠지만, jstl에서 현재날짜를 불러와 비교를 할 수 없는지 궁금했다.

그래서 여러 작업을 진행해본 결과를 리뷰한다.

먼저 필요한건 jsp의 taglib 두개이다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

core는 분기를 하기위해 choose, when, otherwise를 활용해야하고,
fmt는 날짜포맷을 동일하게 해주어 비교해주어야 하기 때문에 필수로 필요하다.

다음은 매우 중요했고 오래걸린 현재날짜를 불러오는 것이다....

처음에는 fmt안에서 ${now}를 하면 현재날짜가 나온다는 여러 블로그 글을 참고했었다.

<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" var="now" />

결과는 값을 불러올 수 없었다.
test는 <c:out/> 을 통해 진행했다.

다음은 now를 fmt에서 찾을 수 없으니까 now를 지정해줄 수 있는게 필요했다.
검색을 해보니 jsp에서 자바 유틸을 불러오는 것을 발견할 수 있었다.

방법은 매우간단하게도 상단에 다음을 붙이면 된다.

<jsp:useBean id="now" class="java.util.Date" />

now는 현재 날짜가 되게 된다.
다음이 중요한데 이를 하지 않으면 view에서 오류가 발생했다.

<jsp:useBean id="now" class="java.util.Date" />
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd" var="now" />

페이지 최상단에 두개를 같이 두어야한다. 중간에 fmt를 하면 반복문을 써서인지
오류가 났었다.

오류에 대한 이유를 알고싶다... ㅠㅠ

profile
새대갈🕊️에서 돌고래🐬

0개의 댓글