간혹 특정 기간 동안에만 보여야 될 콘텐츠를 만들어야 할 수 있다.
여러 가지 방법으로 콘텐츠를 컨트롤할 수 있지만 해당 방법은 JSTL로 하는 방법이다.
1. JSP의 시작 부분에 taglib 정의를 추가(선언)하여 준다.
<!-- 선언부 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2. 자신이 원하는 날짜를 지정
<%-- 현재날짜 --%>
<jsp:useBean id="now" class="java.util.Date" />
<%-- ex)2020년 01월 01일--%>
<fmt:parseDate value="202001010000" pattern="yyyyMMddHHmm" var="startDate" />
<%-- ex)2020년 12월 31일--%>
<fmt:parseDate value="202012310000" pattern="yyyyMMddHHmm" var="endDate" />
현재 날짜는 접속 기준 시스템 시간 이 적혀 들어가기 때문에 따로 설정 없이 그냥 복사해서 붙여 넣으면 된다.
두 번째는 컨텐츠의 보이는 시작 날짜를 value="" 안에다 적으면 된다. ${startDate}로 사용 가능.
세 번째는 콘텐츠의 보이는 마지막 날짜를 value="" 안에다 적으면 된다. ${endDate}로 사용 가능.
3. 지정한 날짜를 formating
<%-- 오늘날짜 --%>
<fmt:formatDate value="${now}" pattern="yyyyMMddhhmm" var="nowDate" />
<%-- 시작날짜 --%>
<fmt:formatDate value="${startDate}" pattern="yyyyMMddHHmm" var="openDate"/>
<%-- 마감날짜 --%>
<fmt:formatDate value="${endDate}" pattern="yyyyMMddHHmm" var="closeDate"/>
2에서 현재 날짜, 시작 날짜, 마지막 날짜를 지정한 걸 date형태로 Fomating 한다.
${now} > ${nowDate}
${startDate} > ${openDate}
${endDate} > ${closeDate}
4. 콘텐츠 적용
<%-- OpenDate보다 nowDate가 크면서 nowDate보다 closeDate가 클때 실행 --%>
<c:if test="${openDate < nowDate && closeDate > nowDate}">
<%--
보여지게 하고 싶은 내용 집어 넣는 부분
--%>
</c:if>
c:if를 통하여 원하는 기간을 조건문으로 설정하여주고 그 안에 보여야 될 콘텐츠 내용을 집어넣으면 된다.
*언제나 이 방법이 정답이거나 최선의 방법은 아닙니다. 더 좋은 방법이 있다면 공유해주세요 :)
최근댓글