JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줍니다.
가급적이면 jsp파일에 자바 코드를 노출시키지 말고 EL, JSTL을 사용하면 더 좋은 페이지를 만들 수 있다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="value1" scope="request" value="Hello JSTL"/> <html> <head>...</head> <body> ${value1} <br> <c:remove var="value1" scope="request"/> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="n" scope="request" value=10/> <html> <head>...</head> <body> <c:if test="${n == 0}"> // test에는 EL 표기법을 쓴다 n은 과 0과 같습니다. </c:if> <c:if test="${n == 10}"> n은 과 10과 같습니다. </c:if> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.*" %> <c:set var="score" scope="request" value=83/> <html> <head>...</head> <body> <c:choose> <c:when test="${score >=90 }"> A학점 입니다. </c:when> <c:when test="${score >=80 }"> B학점 입니다. <c:otherwise> F학점 입니다 </c:otherwise> </c:choose> </body> </html>
일종의 if-else 역할을 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.*" %> <% List<String> list = new ArrayList<>(); list.add("hello"); list.add("world"); list.add("!!!"); request.setAttribute("list", list); %> <html> <head>...</head> <body> <c:forEach items="${list}" var="item"> ${item } <br> </c:forEach> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="java.util.*" %> <c:import url="http://www.google.com" var="urlValue" scope="request"></c:import> <html> <head>...</head> <body> ${urlValue} </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:redirect url="jstlRedirectPage.jsp"></c:redirect>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <html> <head>...</head> <body> <c:set var="t" value="<script type='text/javascript'>alert(1);</script>" /> <c:out value="${t}" escapeXml="true" /> // 경고창 <c:out value="${t}" escapeXml="false" /> // 문자열로 출력 </body> </html>