JSP Expression Language

About EL

Posted by Damin on February 4, 2020

Expression Language

  • Controller에서 setAttribute 메서드를 이용해서 객체를 저장한다.

  • View에서 EL(Expression Language)를 쓰지 않는다면 Java 코드를 사용해서 값을 출력해야 한다(getAttribute 메서드)

  • 이것을 간단하게 하자!

1
2
3
4
5
6
7
8
9
10
11
12
13
Controller 

-> request.setAttribute("result", result);

View

EL을 사용 하지 않을 때

-> <%=request.getAttribute("result")%>

EL을 사용할 때

-> ${result}
  • View의 Code Block을 줄여준다.

  • 일반적인 추출 방법 = ${AttributeName}

  • List를 추출하는 방법 = ${listName[num]}

  • Map을 추출하는 방법 = ${mapName.keyName}

  • EL은 Java를 사용한다는 느낌보다는 객체를 사용한다는 느낌을 들게 한다.


EL의 데이터 저장소

  • Server 상에 존재하는 저장소는 4개가 있다

  • page, request, session, application

  • EL은 page -> request -> session -> application 순으로 순회를 한다.

즉, cnt를 찾고자 한다면 page 객체에서 찾아보고 없다 -> request를 찾는다.

만약 page 객체에 cnt가 있다면 곧 바로 종료!

  • 이를 대비해 Scope를 이용하자(pageScope, requestScope, seesionScope, applicationScope)

EL 연산자

1
2
3
4
5
6
7
8
9
10
[].
()
not ! empty
* / div % mod
+ -
< > <= >= lt gt le ge
== != eq ne
&& and
|| or
? :
  • < , > , <= , >= 를 허용하지만 (lt, gt, le, ge)를 사용하는 것이 더 낫다.

  • html 코드는 <body> 등 이미 많은 꺽쇠를 사용하고 있기 때문에 꺽쇠 사용을 지양하자

  • empty를 이용해 null or ““(빈 문자열) 을 확인해 줄 수 있다

  • /를 이용하면 정수 나누기 정수 = 정수가 아닌, 소수가 나올 수 있다. (