<한줄요약>

EL : JSP의 표현식을 대체해 쉽게 사용하도록 한다

JSTL : JSP 자바 코드의 대체 방법을 제공하는 Library

 

1. EL이란?

 

-  Expression Language

-  JSP에서 표현식, <%= %>을 대신하는 언어

 

기능

-  JSP 4가지 scope 내부 속성 쉽게 사용

-  Java class의 method 호출

-  연산자 지원

 

 

2. EL 사용

 

-  scope의 자바 객체로부터 key/속성값을 꺼내 사용한다

-  객체는 java의 map / bean이어야한다

-  dot 방식 : 객체.key

-  [] 방식 : 객체[key]

-  EL은 null값을 공백으로 표현한다

 

EL 내장객체

객체명 설명
pageContext 현재 page의 instance
pageScope page scope의 객체들
requestScope request scope의 객체들
sessionScope session scope의 객체들
applicationScope application scope의 객체들
param
paramValues
전달된 parameter(들)
cookie 쿠기 정보

 

 

3. EL을 이용한 객체 접근

 

-  JSP 사용시

-  <%= request.getAttribute("emp").getId() %>

 

-  EL 사용시

-  ${ requestScope.emp.id }

-  ${ emp.id } ( 별도 scope 지정 없을시, page -> request -> session -> application 순서로 탐색 )

 

-  저장된 객체의 key에 . 문자가 포함되있을 경우, []만 사용 가능하다

-  ex) setAttribute("hello.world", test); 로 저장했을 경우

-  ${ hello.world } - hello객체는 존재하지 않음

-  ${ requestScope[hello.world] } 으로 사용해야한다

 

-  method 접근

-  ${ requestScope.emp.function() }  == ${ emp.function() }

-  ${emp.function}은 emp 객체의 getFunction()함수를 뜻한다. 주의

 

-  Cookie 접근

-  기본 객체인 cookie 사용

-  ${ cookie.id.val }

-  존재하지 않으면 null 반환

 

 

4. EL 연산자

 

-  산술 연산자 : +, -, *, /, %

-  관계 연산자 : ==, !=, <, >, <=, >=

-  3항 연산자 : con? val1 : val2;

-  논리 연산자 : &&, ||, !

-  유효값 검증 : empty ( null, 빈 문자열, 배열, MAP에 대해 true를 반환)

 

 

5. JSTL이란?

 

-  JSP Standard Tag Library

-  JSP를 확장하는 태그 라이브러리

-  Java 코드를 직접 사용하지 않고 Tag로 제공한다

 

JSTL의 종류

library 기능 URL
core 변수 지원, 제어,반복문 지원 http://java.sun.com/jsp/jstl/core
XML XML 변환, 제어 http://java.sun.com/jsp/jstl/xml
국제화 포매팅 지원, 숫자/날짜양식 지원 http://java.sun.com/jsp/jstl/fmt
database DB SQL http://java.sun.com/jsp/jstl/sql
함수 Collection, String 처리 http://java.sun.com/jsp/jstl/function

 

6. JSTL core 사용하기

 

JSTL core tag 종류

tag 설명
set 변수 설정
remove 변수 제거
if 조건에 따라 실행
choose, when, otherwise 다중조건, if / else 구문
forEach array/collection의 각 항목별 처리
forTokens 특정 구분자로 구분된 항목별 처리
import 해당 URL 자원 삽입
redirect 해당 경로로 이동
url URL 작성
catch 예외처리
out 출력

 

JSTL core 사용 선언

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

 

JSTL로 변수 선언

//name 이름으로 value값을 가지는 변수 선언
//scope는 별도 지정 없으면 page
<c:set value="value" var="name" scope="request"/>

<c:set var="name">
value
</c:set>

 

JSTL 조건문

<c:if test="${ 조건식 }">
	//true일 경우 실행할 Body
</c:if>

<c:choose>
	<c:when test="${ 조건식 }">
		//실행할 Body
	</c:when>
	<c:otherwise>
		//위 조건이 아닐경우 실행할 Body
	</c:otherwise>
</c:choose>

 

JSTL 반복문

//list의 각 항목마다 id를 출력하는 반복문
<c:foreach var="item" items="${ list }">
	${item.id}<br>
</c:foreach>

//몇번째 항목인지 같이 출력
<c:foreach var="item" items="${ list }" varStatus="idx">
	${ idx.count }. ${item.id}<br>
</c:foreach>

//0, 2, 4, 6, 8, 10번째 항목만 출력하기
<c:foreach var="item" items="${ list }" begin="0" end="10" step="2">
	${item.id}<br>
</c:foreach>

'WEB 공부' 카테고리의 다른 글

[Frontend] 프론트에서 AWS S3에 이미지 압축 / 업로드 / 다운로드 / 삭제하기  (0) 2021.08.22
[WEB] Spring - DI  (0) 2021.05.18
[WEB] Cookie & Session  (0) 2021.05.16
[WEB] Backend - Servlet, JSP  (0) 2021.05.16
[JAVA] JDBC  (0) 2021.05.16
[WEB] Frontend - Bootstrap  (0) 2021.05.15
[WEB] Frontend - AJAX  (0) 2021.05.15

+ Recent posts