1. EL 이란?
- 표현식<%= %>을 간결하고 편리하게 사용하기 위한 또 다른 형태의 스크립트 언어
- JSTL 1.0 부터 소개
- 톰캣 8.5 + JSP 2.3, EL 3.0 한 쌍
2. EL 기능
1) 쿠키, JSP 기본 객체 사용 가능
2) 람다식 사용
3) 수치, 관계, 논리 연산자 사용(empty, not, == eq, != ne 등등)
4) JSP 4가지 영역(Scope) 사용
5) 자바 클래스의 메서드 호출 가능
정적(static) 메서드 호출 가능
등등
3. EL 사용 선언 형식
${EL 표현 } #{EL 표현 } -> 기억 안해도됨
* EL은 4가지 Scope(영역) 중 하나에 저장을 해야 사용이 가능함
String name = "익순이"
request.setAttribute("xxx", name); -> request Scope에 저장
또는 c:set으로 저장된 변수도 EL로 출력이 가능하다.
4. EL 자료형과 리터럴
1) boolean - true, false
2) 정수 - 10, -10
3) 실수 - 3.14 => java.lang.Double 클래스 타입으로 잡힘
4) 문자열 - "" ''
5) NULL - null
5. EL 연산자
1) 수치연산자
+ - * / %
/ 대신 div 사용 가능
% 대신 mod 사용 가능
2) 비교연산자
== eq
!= ne
< lt
> gt
<= le
>= ge
3) 논리연산자
&& and
|| or
! not
4) empty 연산자 **
값이 null이 와도 true
값이 ""(빈문자열)이 와도 true
배열의 길이가 0이어도 true
빈 Map이 와도 true
빈 Collection이 와도 true(ex. empty list == true)
위의 경우 외에는 empty 연산자의 결과는 false를 리턴한다.
5) 삼항연산자
a > b ? a : b
6) 문자열 연결 연산자
- EL 3.0 version 부터 EL 문자열 연결 연산자 적용 : +=
7) 세미콜론 연산자
- A ; B이면 A는 출력하지 않고 B만 출력한다.
8) 할당(대입) 연산자
- 어떤 변수에 어떤 값을 할당하고 변수를 출력하겠다 라는 의미
ex) 변수 var1에 10이라는 값을 할당하고 var1을 출력하겠다.
6. EL에서 객체의 메서드, 정적(static) 메서드 사용하는 방법
ex) long형을 원하는 패턴으로 출력하기 - 3자리마다 콤마 찍기
1) FormatUtil.java 생성 후 인스턴스 메서드와 정적 메서드 생성
2) jsp 파일에서
- request.setAttribute("price", price)를 사용하여 JSP Scope 영역에 저장하여 EL 사용하거나 JSTL로 변수 선언 할당하여 사용가능
- FormatUtil 객체를 생성해서 객체명.number() 메서드 호출
[결과]
번외) 천 단위마다 콤마 찍기
7. EL의 기본 객체
1. pageContext == page
2. pageScope == pageContext.setAttribute("deptn", 10)
requestScope == requset.setAttribute("empno", 7369)
sessionScope == session.setAttribute()
applicationScope == application.setAttribute()
3. param == request.getParameter("age")
param.age
4. paramValues
ex) ?name=yaliny&name=hong&name=admin
paramValues.name == request.getParameterValues("name")
5. header == request.getHeader()
6. headerValues == request.getHeaderValues()
7. cookie == request.getCookies()
ㄴ 쿠키 객체
Map 객체 = key, value
쿠키이름, 쿠키객체(cookie)
8. initParam == application.getInitParameter()
web.xml
<context-param>
<description>디버깅 레벨</description>
<param-name>debugLevel</param-name>
<param-value>3</param-value>
</context-param>
${initParam.debugLevel } == param-value인 3을 가져옴
기본 객체 사용 예시)
> 쿼리스트링 직접 입력
> 링크 태그 클릭
[ex09_04_03.jsp 코드]
8. EL로 쿠키 다루기(EL+JSTL 포함)
[ex09_05.jsp]
[ex09_05_ok.jsp]
[결과]
> 링크 태그 시 ex09_05_ok.jsp로 이동하여 쿠키 이름과 쿠키 값을 출력
'TIL > View Template' 카테고리의 다른 글
[SIST] JSP_days08_모델 2구조와 MVC 패턴 (0) | 2022.06.24 |
---|---|
[SIST] JSP_days08_JSTL(표준 태그 라이브러리) (0) | 2022.06.24 |
[SIST] JSP_days07_세션(session) (0) | 2022.06.23 |
[SIST] JSP_days07_커넥션풀 (0) | 2022.06.23 |
[SIST] JSP_days06/07_JSP 쿠키(Cookie) (0) | 2022.06.22 |