Expression Language
Expression Language
EL : Expression Language
- 표현 언어는 변수의 값을 출력할 때 사용하는 스크립트 언어
- 모델2 방식으로 웹 어플리케이션을 개발할 때 주로 사용
- 4가지 영역(page, request, session, application)에 저장된 속성에 접근할 때 사용
- 사용법이 간결하고, 예외와 형변환에 관대하다는 특징
제공되는 기능
- JSP 내장 객체의 영역에 담긴 속성을 사용 가능
- 산술 연산, 비교 연산, 논리 연산 가능
- 자바 클래스에 정의된 메서드를 호출 가능
- 표현 언어만의 객체를 통해 JSPP와 동일한 기능을 수행
사용법
${속성}
- 속성은 영역에 저장된 속성을 뜻함
- 변수나 값을 바로 쓸 수 있던 표현식과는 다름
- JSP에서 생성한 변수를 접근하려면, 반드시 영역에 저장 후 사용
request 영역에 저장하였다면 –> <h2>${ requestScope.saveVar} </h2> –> 와 같이 출력
HTML, javascript, CSS 어디서든 사용 가능
1
2
<c:set var="elVar" value="${ elVar }"/> // 액션 태그와 함께 사용
<jsp:include page="${pathVar}"/> // JSTL과 함께 사용
JSP 스크립트 요소(선언부, 표현식, 스크립틀릿)에서는 사용 불가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<%!
void myMethod($ {
errorVar
}){
// 코드
}
%> // 선언부 사용으로 에러 발생
<%@include file="${ errorVar }"%> // 스크립틀릿에서 사용 에러 발생
<%=
$ {
errorVar
} %> // 표현식에서 사용 에러 발생
객체 표현 방식
.(점)이나 [](대괄호)를 사용
1
2
3
4
5
6
7
8
9
10
11
$ {
param.name
}
$ {
param["name"]
}
$ {
param['name']
}
**속성명에 특수 기호나 한글이 포함되었을 때는 대괄호만 사용
${ header["user-agent"] } // 가능
${ header.user-agent } // 에러 발생
${ King['한글'] } // 가능
${ King.한글 } // 에러 발생
내장 객체
4가지 영역에 속성값 저장하고 읽어오기
- pageScope : pageContext 내장 객체와 같이 page 영역에 저장된 속성값 읽기
- requestScope : request 내장 객체와 같이 request 영역에 저장된 속성값 읽기
- sessionScope : session 내장 객체와 같이 session 영역에 저장된 속성값 읽기
- applicationScope : application 내장 객체와 같이 application 영역에 저장된 속성값 읽기
폼값 처리하기
- param : request.getParameter(“매개변수명”)과 동일하게 요청 매개변수의 값을 받음
- paramValues : request.getParameterValues(“매개변수명”)과 동일하게 요청 매개변수의 값을 문자열 배열로 받음 (주로 다중 선택이 가능한 checkbox를 통해 전달된 폼값을 받을 때 사용)
쿠키나 헤더값 읽기
- cookie : 쿠키를 읽을 때 사용
- header : request.getHeader(헤더명)와 동일하게 헤더값을 읽을 때 사용
- headerValues : request.getHeaders(헤더명)와 동일하게 헤더값을 배열 형태로 읽을 때 사용
- initParam : web.xml에 설정한 컨텍스트 초기화 매개변수를 읽을 때 사용
- pageContext : JSP의 pageContext 내장 객체와 동일한 역할
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.