처음부터 차근차근

EL 본문

프로그래밍/JSP

EL

_soyoung 2022. 1. 8. 16:11
반응형

EL

Expression Lanuage의 약자로, 저장 객체에서 값을 추출할 때 간편하게 추출할 수 있도록 하는 언어이다.

requsest 저장 객체에 'fruit'라는 이름으로 apple값을 가진 데이터가 저장되었다고 가정하면

원래는

<%=request.getAttribute("fruit"); %>

이렇게 썼어야 했는데 EL을 사용하면 

${fruit}

라고 간단하게 쓰면 된다.

 

 

리스트 예시

// list 생성과 request 저장 객체에 데이터 저장
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
request.setAttribute("my_list", list);


// 데이터 추출
<%=((List)request.getAttribute("my_list")).get(0); %>

// el방식으로 데이터 추출
${my_list[0]}

 

 

HashMap예시

// hashmap 생성과 request 저장 객체에 데이터 저장
HashMap<String, String> map = new HashMap<String, String>();
map.put("flower", "rose");
request.setAttribute("map", map);


// 데이터 추출
<%=((HashMap)request.getAttribute("map")).get("flower")%>


// el방식으로 데이터 추출
${map.flower}

 

 

 

서버 저장 객체의 우선순위

1. pageContext

2. request

3. session

4. application

 

예를들어 위의 4개에 모두 'test'라는 이름의 객체가 있다면 jsp 파일에서 ${test}를 쓰면 pageContext의 test 값이 나온다.

하지만 특정 저장 객체의 값을 가져오고 싶을 때가 있는데 이때는 Scope라고 하는 키워드(el 내장 객체)를 사용하면 된다.

${pageScope.test} : pageContext의 값 출력

${requestScope.test} : request의 값 출력

${sessionScope.test} : session의 값 출력

${applicationScope.test} : application의 값 출력

 

 

 

EL 내장 객체

${param.test} : == request.getParameter("test");

${paramValues.test} : 요청 파라메타의 값을 배열로 반환

${header.host} : 현재 host를 출력한다.

사용자가 요청할 때 불러온 헤더 정보를 출력(웹 브라우저 개발자 모드 네트워크 Request Header 정보)

${headerValues.test} : 요청 헤더명의 정보를 배열로 반환

${cookie.test.value} : 이름이 test인 cookie 값을 반환

${initParam.test} : 

${pageContext.request.method} : == <%=pageContext.getRequest().getMethod%()>

결과로 get이나 post나옴

 

 

 

EL 연산자

[] : 배열 or 리스트 접근 연산자

. : 자바빈 or 맵 접근 연산자

! , not 

empty : 객체의 값이 null이거나 비어있으면("") true 반환 

* + - 

/ , div

% , mod

< , lt

> , gt

<= , le

>= , ge

== , eq

!= , ne

&& , and

|| , or

( )?( ):( ) : 삼항연산자 

 

주의 : ${5 / 2} 하면 소수 2.5 나옴

정수 / 정수 = 정수 아님!

 

 

 

EL 특징

EL은 저장소에 담겨있는 값만 출력할 수 있다.

즉, 저장 객체의 값만 출력할 수 있다는 뜻이다.

page 내에서 지역 변수를 사용하고 싶으면

pageContext.setAttribute("a", a);
${a}

이 방법이나 아님

 

이 방법 써야한다.

 

 

 

출처 : https://www.youtube.com/playlist?list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd 변형 및 요약 

반응형
Comments