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 ““(빈 문자열) 을 확인해 줄 수 있다
-
/를 이용하면 정수 나누기 정수 = 정수가 아닌, 소수가 나올 수 있다. (