본문 바로가기
Study Progamming/JSP

[ Expression Language ] JSP EL 사용하기

by ${코딩몬} 2017. 9. 4.


JSTL 관련된 공부를 위해 다양한 검색포탈을 이용하여 찾아낸 자료와

블로그 및 홈페이지의 자료를 바탕으로 만들어진 내용입니다.

단지 공부의 목적으로 자료들를 정리해둔 것입니다.



JSP

JSP EL 사용하기



EL(Expression Language) 이란?


자바코드를 대신하여 다른 표현식을 사용함으로서 태그와의 혼동을 막고 좀더 간결한 소스 작성이 가능하다.

값을 표현하는데 사용되는 새로운 스크립트 언어로 JSP의 기본문법을 보완하는 역할을 한다.

JSP 네 가지 기본 객체가 제공하는 영역의 속성 사용한다

    • 집합 객체에 대한 접근 방법 제공
    • 수치 연산, 관계 연산, 논리 연산자 제공
    • 자바 클래스 메서드 호출 기능 제공
    • 표현 언어만의 기본 객체 제공


EX>

<%= request.getAttribute("RESULT") %> == ${RESULT}

      • <&= %> => 익스프레션의 식

      • $ { } => 익스프레션 언어의 식



EL 장점/단점

   

장점

파싱단계를 최소한으로 줄일수 있으며 그로인해 컴파일이 빨라진다.

단점

복잡한 데이터의 처리는 불가능 하다.



EL 사용 목적


<%= %> , out.println()과 같은 자바코드를 더 이상 사용하지 않고 좀더 간편하게 출력을 지원하기 위한 도구이며,
배열이나 컬렉션에서도 사용되고, JavaBean의 프로퍼티에서도 사용된다.


EL 문법


Attribute형식에서는 <%= cnt + 1 %>를 쓰지 않고 ${cnt + 1}로 쓰고
Parameter형식에서는 ${param.abc}으로 씁니다.

여기서 cnt는 자바에서는 변수 이름이고, EL 식에서는 Attribute의 이름으로 해석되며,
값을 찾을때 Attribute는 작은 Scope에서 큰 Scope로 찾는다.
( 경로 : page → request → session → application ) 


attribute형식


메소드를 통해 저장되고 관리되는 데이터
      • PageContext / Request에서 사용될때
        • setAttribute("key", value) → 값을 넣는다.
        • getAttribute("key") → 값을 가져온다.
        • removeAttribue("key") → 값을 지운다.
      • session에서 사용될때
        • set / get / remove 동일
        • invalidate( ) → 값을 전부 지운다.



EL 내장객체


 내장객체 이름

 설명

 pageContext

 JSP의 page 기본 객체와 동일하다.

 pageScope

 pageContext 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

 requestScope

 request 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

 sessionScope

 session 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

 applicationScope

 application 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체

 param

 요청 파라미터의 <파라미터이름, 값> 매핑을 저장한 Map 객체, 타입은 String (request.getParameter(이름)의 결과와 동일)

 paramValues

 요청 파라미터의 <파라미터이름, 값 배열>매핑을 저장한 Map 객체, 타입은 String[] (request.getParameterValues(이름)의 결과와 동일)

 header

 요청 정보의 <헤더이름, 값> 매핑을 저장한 Map 객체 (request.getHeader(이름)의 결과와 동일)

 headerValues

 요청 정보의 <헤더이름, 값 배열> 매핑을 저장한 Map 객체 (request.getHeaders(이름)의 결과와 동일)

 cookie

 <쿠키 이름, Cookie> 매핑을 저장한 Map 객체 (request.getCookies()로 구한 Cookie 배열로 부터 매핑을 생성)

 initParam

 초기화 파라미터의<이름, 값> 매핑을 저장한 Map 객체 (application.getInitParameter(이름)의 결과와 동일)



EL 연산자


 단어 연산자

 기호 연산자

 설명

 .

 

 빈 또는 맵에 접근하기 위한 연산자

 [ ]

 

 배열 또는 리스트(컬렉션)에 접근하기 위한 연산자

 x?a:b

 

 삼항조건식 (x가 true이면 a, false이면 b) 

 empty

 

 값이 null일 경우 true를 리턴 

 +

 +

 plus 

 -

 -

 minus 

 *

 *

 product

 /

 div

 divide 

 %

 mod

 mod

 &&

 and

 and

 ||

 or

 or

 !

 not

 not

 ==

 eq

 equal

 !=

 ne

 not equal

 <

 lt

 less than 

 >

 gt

 grate than 

 <=

 le

 less equal 

 >=

 ge

 grate equal




EL 예제

(추가 예정)




참고자료

  • http://blog.naver.com/lagi1101/90121522958
  • http://gangzzang.tistory.com/entry/JSP-표현-언어Expression-Language-또는-익스프레션-언어
  • http://hunit.tistory.com/203