JSTL

csct3456·2022년 4월 4일
0

JSTL이란?

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>

메소드 실행

if

<%@ 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>

choose

<%@ 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 역할을 한다.

forEach

<%@ 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>

import

<%@ 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>

redirect

<%@ 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>

out

<%@ 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>

0개의 댓글