개발 공부

EL(표현식) 과 Scope(객체범위)

준군 2020. 8. 3. 18:21
  • EL (Expresssion Language)                                                                                                         EL은 JSP에서 Java 코드를 쓰지 않고도 Java 객체를 불러올수 있는 언어이다. 기존에 사용했던 jsp tag <%= %>를 EL 표기법 ${}로 대체한다. 아래는 EL 표기법 예제이다. 문자열, 배열, 맵 등을 EL을 써서 출력해보았다. 

(좌) mvc2 servlet  (우) mvc2 jsp

EL 안에 들어가는 값은 jsp와 달리 숫자는 숫자로 문자열은 문자열로 인식한다. 아래의 표는 EL 에서 쓰여지는 여러가지 operator 들이다.

[]

배열의 원소 반환
+, -, * 덧셈, 뺄셈, 곱셉
/ (div) 나눗셈
% (mod) 나머지
== (eq) 같은지 비교
!= (ne) 같지 않은지 비교
< (lt) 작음
> (gt)
<= (le) 작거나 같음
>= (ge) 크거나 같음
&& (and) AND
|| (or) OR
! (not) NOT
empty EMPTY

 

여기서 눈여겨 볼것은 괄호안에 있는 연산자들도 대신 쓸수 있다는 것이다. 그 이유는 HTML에서 이미 <,> 등의 특수기호를 사용하고 있으므로 중복되지 않게 만들었다. 여기 게시된 연산자들은 보통 많이 쓰는 연산자들이여서 어떤 의미인지 다 알것이다. empty라는 연산자만 짚고 넘어 갈 것이다. empty는 boolean을 리턴해주는 연산자로 예를 들어 어떤 문자열이 null 이거나 비어있다면("") true를 반환하고 반대의 경우에는 false를 반환한다. 아래의 예를 참고 해보자.

${empty param.c ? "param is emtpy" : param.c} 

empty 와 삼항연산자를 중첩시킨건데 아마 보면 어떤 느낌인지 알것이다. c라는 변수가 비어있거나 null이면 "param is empty"를 출력하고 그렇지 않으면 c의 값을 출력 하는 것이다. 

 

  • Scope (객체범위)
        JSP에서는 page, request, session, application 등의 네가지 객체 범위를 제공한다. 각 객체마다 적용되는 범위가 다르며 다른 범위 두곳에서 같은 이름으로 변수가 저장 될 경우 원하지 않은 객체를 불러드릴 수도 있다. 작은 범위부터 page < request < session < application 순이며 만약 같은 이름의 변수가 page, request에 저장되어 있는 경우, 그 변수를 부르면 작은 범위에 있는 page에 저장 되어있는 변수가 불러진다. 참고로 page 객체는 jsp에서만 존재하므로 jsp에서만 부를수 있다.

출처: oreilly.com

 

'개발 공부' 카테고리의 다른 글

웹서버의 종류 (Apache / IIS / Nginx)  (0) 2020.08.24
JSTL - forEach  (0) 2020.08.23
MVC1 / MVC2 예제  (0) 2020.08.03
Cookie를 이용한 장바구니 만들기  (0) 2020.08.01
Application Context / Session / Cookie  (0) 2020.07.31