-
표현 언어(Expression Language)TEMPLATE/JSP 2023. 5. 2. 18:06
- 표현 언어 기능
- JSP 내장 객체의 영역에 담긴 속성을 사용할 수 있다
- 산술 연산, 비교 연산, 논리 연산이 가능하다
- 자바 클래스에 정의된 메서드를 호출할 수 있다
- 표현 언어만의 객체를 통해 JSP와 동일한 기능을 수행할 수 있다.
- 기본 사용법
- ${ 속성 }
- <h2>${ requestScope.saveVar }</h2>
- <c:set var="elVar" value="${ elvar }"/>
<jsp:include page="${ pathVar }"/> - <%! void myMethod(${ errorVar }) { // 코드 } %>
- <%@ include file="${ errorVar }"%>
- <%= ${ errorVar } %>
- 객체 표현 방식
- EL에서 객체를 표현할 때는 .(점) 이나 [](대괄호)를 사용합니다.
- ${ param.name }
- ${ param["name"] }
- ${ param['name'] }
- 속성명에 특수 기호나 한글이 포함 되었을 때는 대괄호만 사용할 수 있다.
- ${ header["user-agent"] }
- ${ King['한글'] }
- 대괄호를 사용할 때 속성명에는 "(큰따옴표)와 '(작은따옴표) 모두 사용할 수 있다.
- EL에서 객체를 표현할 때는 .(점) 이나 [](대괄호)를 사용합니다.
- EL의 내장 객체
- 4가지 영역에 속성값 저장하고 읽어오기
- EL에서 4가지 영역에 접근하기 위한 내장 객체
- pageScope - pagecontext 내장 객체와 같이 page 영역에 저장된 속성값을 읽음
- requestScope - request 내장 객체와 같이 request 영역에 저장된 속성값을 읽어옴
- sessionScope - session 내장 객체와 같이 session 영역에 저장된 속성값을 읽어옴
- applicationScope - application 내장 객체와 같이 application 영역에 저장된 속성값을 읽어옴
- EL에서 4가지 영역에 접근하기 위한 내장 객체
- 폼값 처리하기
- 폼값을 처리하기 위한 내장 객체
- param - request.getParameter(”매개변수명”)과 동일하게 요청 매개변수의 값을 받아옴
- paramValues - request.getParameterValues(”매개변수명”)과 동일할게 요청 매개변수의 값을 문자열 배열로 받아옴. 주로 다중 선택이 가능한 checkbox를 통해 전달된 폼 값을 받을 때 사용함
- 폼값을 처리하기 위한 내장 객체
- 객체 전달하기
- 객체를 영역에 저장한 후, 내장 객체의 영역이 공유된다는 특징을 이용해서 전송하고자 하는 페이지로 전달하면 된다.
- 쿠키, HTTP 헤더, 컨텍스트 초기화 매개변수 출력하기
- cookie - 쿠키를 읽을 때 사용함
- header - request.getHeader(헤더명)와 동일하게 헤더값을 읽을 때 사용함
- headerValues - request.getHeaders(헤더명)와 동일하게 헤더값을 배열 형태로 읽을 때 사용함
- initParam - web.xml에 설정된 컨텍스트 초기화 매개변수를 읽을 때 사용함
- pageContext - JSP의 pageContext 내장 객체와 동일한 역활을 합니다.
- 컬렉션 사용하기
- EL의 연산자들
- 할당 연산자
${ numberVar = 10 } <- 할당과 동시에 출력
${ numberVar = 10;'' } <- 할당만 되고 출력은 되지 않음 - 산술 연산자
- +, -, * : 덧셈, 뺄셈, 곱셈
- / 또는 div : 나눗셈
- % 또는 mod : 나머지
- 비교 연산자
- > 또는 gt : Greater Than (~보다 크다.)
- >= 또는 ge : Greater than or Equal(~보다 크거나 같다.)
- < 또는 lt : Less Than (~보다 작다.)
- <= 또는 le : Less than or Equal (~보다 작거나 같다)
- == 또는 eq : EQual (같다)
- != 또는 ne : Not Equal (같지 않다)
- 논리 연산자
- && 또는 and : 논리 And
- || 또는 or : 논리 Or
- ! 또는 not : 논리 Not
- empty 연산자
- null
- 빈 문자열
- 길이가 0인 배열
- size가 0인 컬렉션
- 삼항 연산자
${ 조건 ? "true일 때 선택" : "false일 때 선택" } - null일 때 연산
- 자바에서는 null을 조작하려 하거나 연산에 사용하면 NullPointerException이 발생
- EL에서는 0으로 인식되어 예외가 발생하지 않음
- 할당 연산자
- 정적 메서드 호출
- 클래스명을 톻한 정적 메서드 호출
- TLD를 이용한 정적 메서드 호출
- 호출할 메서드를 담은 자바 클래스를 작성(public로 선언한 정적 메서드만 호출가능)
- TLD 파일을 생성한 후 클래스와 메서드를 등록
- JSP 파일에서 taglib 지시어로 tld 파일의 경로와 이 tld를 지칭할 접두어를 설정
- 접두어를 통해 EL에서 메서드를 호출
- 4가지 영역에 속성값 저장하고 읽어오기
'TEMPLATE > JSP' 카테고리의 다른 글
JSP 표준 태그 라이브러리(JSTL) (1) 2023.05.02 액션 태그(Action Tag) (0) 2023.05.02 JSP 내장 객체 (0) 2023.05.02 page 지시어 (0) 2023.05.02 JSP 기본 정보 (0) 2023.05.02 - 표현 언어 기능