본문 바로가기
  • 일하면서 배운 내용 끄적이는 블로그
JSP

EL & JSTL

by dhl7799 2024. 2. 23.

EL이란?

표현 언어라는 뜻으로, 값을 표현하는데 사용되는 스크립트 언어, JSP의 기본 문법을 보완한다

제공하는 기능으로는

JSP의 스코프에 맞는 속성 사용

집합 객체에 대한 접근 방법 제공

수치 연산, 관계 연산, 논리 연산자 제공

자바 클래스 메소드 호출 기능 제공

표현언어만의 기본 객체 제공

 

표현언어의 표현방법

${expr}

 

표현언어의 기본객체

 

표현 언어 기본 객체 사용 예시

${pageContext.request.requestURI}<br>
${requestScope.name}<br>
${param.code}

 

JSTL이란?

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

 

JSTL 사용법

http://tomcat.apache.org/download-taglibs.cgi

 

Apache Tomcat® - Apache Taglibs Downloads

Welcome to the Apache Taglibs download page. This page provides download links for obtaining the latest version of the Apache Standard Taglib, as well as links to the archives of older releases. You must verify the integrity of the downloaded files. We pro

tomcat.apache.org

에서 Impl, Spec, EL 다운받아 WebContent 아래 WEB-INF 아래 lib 폴더에 넣기

 

이후 jsp 파일 안에 해당 태그로 선언

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

 

 

JSTL이 제공하는 태그의 종류

 

코어 태그의 종류

 

<c:set var="varName" scope="session" value="someValue"/>

<c:set var="varName" scope="request">
some Value
</c:set>

 

var - EL에서 사용될 변수명

scope - 변수값이 저장될 영역

value - 변수

 

 

if 태그

자바랑 다르게 else는 없음

<c:if test="${18 < param.age}">
...
...
</c:if>

 

choose - when

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

 

forEach

먼저 list 생성 위해서 java.util.* import

<%@ page import="java.util.*" %>
<%
    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>

 

import 

<c:import url="http://localhost:8080/firstweb/jstlValue.jsp" var="urlValue" scope="request"/>

 

원하는 페이지의 url을 입력하고, var은 담을 변수명, scope는 해당 변수를 넣을 영역 지정

<body>
${urlValue }
</body>

 

redirect

<c:redirect url="jstlRedirectPage.jsp"></c:redirect>

 

out

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

 

 

 

'JSP' 카테고리의 다른 글

Scope  (0) 2024.02.23
Redirect & Forward  (1) 2024.02.22
JSP  (0) 2024.02.22