프론트 개발자가 JSP를 수정하는데, JSP 안에 자바코드와 HTML코드가 섞여 있다면 수정할 때 굉장히 어려움을 느끼게 될 가능성이 큽니다.

    이런 문제를 해결하기 위해서 등장한 것이 JSTL입니다.

    JSTL을 이용하면 태그형식으로 조건문, 반복문 등을 사용할 수 있습니다.

    EL과 연동하면 더욱 강력하게 사용 가능합니다. 

     

    • JSTL
    • core tag

    JSTL이란?

    JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줍니다.

     

    JSTL을 사용하려면?

    JSTL이 제공하는 태그의 종류

    코어 태그

     

     

     

     

     

    코어 태그: 변수 지원 태그 - set, remove

     

    jstl01.jsp

    set, remove의 활용

    <%@ 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="kang"/>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    
    성 : ${value1} <br>
    
    <c:remove var="value1" scope="request"/>
    
    성 : ${value1 }
    </body>
    </html>

     

     

    코어태그: 변수 지원 태그 - 프로퍼티, 맵의 처리

    jsp에서의 자바빈이란? : java파일로 class파일(객체)를 설계해 놓고, jsp에서 필요에 따라 class를 끌어다 쓰는데 이때 class(객체)를 빈이라고 부른다

     

    HashMap 클래스는 Map 인터페이스 기반의 구현 클래스 이다. - key와 value를 쌍으로 보관하는 클래스 이다. ... - HashMap 형식 변수 선언 및 개체 생성할 때는 제네릭 형식 인자로 키와 값을 명시하여 표현 한다.

     

    코어 태그: 흐름제어 태그 if

     

    jstl02.jsp

    if의 활용

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <%
    request.setAttribute("n", 10);
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <c:if test="${n == 0}">
    n은 과 0과 같습니다.
    </c:if>
    
    <c:if test="${n == 10}">
    n은 과 10과 같습니다.
    </c:if>
    </body>
    </html>

     

    코어 태그: 흐름제어 태그 - choose

    jstl03.jsp

    switch의 활용

    <%@ 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.*" %>
    <%
        request.setAttribute("score", 83);
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <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>
    </body>
    </html>

     

    코어 태그: 흐름제어 태그 - forEach

    jstl04.jsp

    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);
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <c:forEach items="${list}" var="item">
    ${item } <br>
    </c:forEach>
    </body>
    </html>
    

     

    코어 태그: 흐름제어태그 - import

    jstlValue.jsp

    import의 활용

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    Kang jin woo
    

    jstl05.jsp

    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://localhost:8080/webapp/jstlValue.jsp" var="urlValue" scope="request"></c:import>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    읽어들인 값 : ${urlValue}
    </body>
    </html>
    

     

    코어 태그: 흐름제어태그 - redirect

    jtl06.jsp

    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="http://localhost:8079/firstweb/jstl05.jsp"></c:redirect>
    

    jspt05로 redirect

     

    jstlRedirectPage.jsp

    redirect의 활용

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <h1> redirect된 화면입니다.</h1>
    </body>
    </html>

     

    코어 태그: 기타태그 - out

    jstl07.jsp

    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"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <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" />
    </body>
    </html>
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기
    loading