1. JSTL 이란?
-JSP 표준 태그 라이브러리(여러 프로그램이 공통으로 사용하는 코드를 모아놓은 집합)의 약어
-이미 만들어진 태그를 이용하여 JSP환경에서 보다 가독성 좋게 JAVA를 사용할 수 있다.
-기본적으로 제공하는 태그 외에도 자신만의 태그를 만들어서 사용할 수 있다.
2. JSTL 라이브라러 다운로드
-http://tomcat.apache.org/download-taglibs.cgi(다운로드 경로)
3. JSTL 라이브러리 적용방법
아래와 같이 taglib지시문을 이용하여 선언 후에 사용가능하다.
종류가 여러가지 있으니 본인이 필요한 부분만 선언해서 사용하면 된다.
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c-rt" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt-rt" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
4. JSTL 사용방법 및 예시
JSTL중에 가장 많이 사용하는 core태그(prefix="c")만 간단한 예시를 통해 알아보겠다.
(1) c:cet / c:remove (prefix="c")
변수의 선언 및 제거
<c:set var="value1" scope="request" value="choi"/>
성 : ${value1} // 값이 출력된다
<c:remove var="value1" scope="request"/>
성 : ${value1 } // 값이 없다
(2) c:out (prefix="c")
변수의 값을 출력
EL태그를 사용 안하고 out을 사용하는 경우는 아래 예시처럼 escapeXml을 통하여
세부적인 설정이 가능할 뿐만 아니라 3항연산자를 사용하거나 엄격한 태그규칙을 지키기에 용이하기 때문이다.
<c:out value="내용물" default="value가 null일 경우 설정한 default값이 출력"/>
<c:set var="t" value="<script type='text/javascript'>alert(1);</script>" />
${t}
<c:out value="${t}" escapeXml="true" />
<c:out value="${t}" escapeXml="false" />
(3) c:if (prefix="c")
if 조건문 역할
<% request.setAttribute("n", 10); %>
<c:if test="${n == 0}">
n은 과 0과 같습니다.
</c:if>
<c:if test="${n == 10}">
n은 과 10과 같습니다.
</c:if>
(4) c:forEach (prefix="c")
for문의 반복문과 동일한 역할을 한다.
begin : 시작 값, end : 마지막 값, step : 증가단위
begin, end, step은 생략 가능하며 생략할 경우 처음부터 끝까지 반복문을 실행한다.
<%
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("!!!");
request.setAttribute("list", list);
%>
<c:forEach items="${list}" var="item">
${item } <br>
</c:forEach>
<c:forEach var="i" begin="1" end="10" step="1">
<c:set var="weekNum" value="${(i+startWeekDay-2)%7}"></c:set>
</c:forEach>
(5) c:choose / c:when (prefix="c")
if, else 구문 역할을 한다.
<% request.setAttribute("score", 83); %>
<c:choose>
<c:when test="${score >=90 }">
A학점입니다.
</c:when>
<c:when test="${score >=80 }">
B학점입니다.
</c:when>
<c:when test="${score >=70 }">
C학점입니다.
</c:when>
<c:when test="${score >=60 }">
D학점입니다.
</c:when>
<c:otherwise>
F학점입니다.
</c:otherwise>
</c:choose>
(6) c:url (prefix="c")
url 주소를 생성해 준다.
$.ajax({
type:"POST",
url: '<c:url value="/board/bbslist"/>',
...
});
(7) c:include (prefix="c")
JSP에서 페이지 include와 같은 역할을 한다.
<c:import url="http://www.google.com">
'JAVA > JSP, Servlet' 카테고리의 다른 글
<Servlet>이란 무엇일까? 서블릿 개념정리 (0) | 2019.05.18 |
---|---|
<Servlet>redirec와 forward개념 (0) | 2019.05.15 |
댓글