간혹 특정 기간 동안에만 보여야 될 콘텐츠를 만들어야 할 수 있다. 

    여러 가지 방법으로 콘텐츠를 컨트롤할 수 있지만 해당 방법은 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를 통하여 원하는 기간을 조건문으로 설정하여주고 그 안에 보여야 될 콘텐츠 내용을 집어넣으면 된다.

     

    *언제나 이 방법이 정답이거나 최선의 방법은 아닙니다. 더 좋은 방법이 있다면 공유해주세요 :)

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기