표현언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.
표현 언어가 제공하는 기능
- JSP의 scope에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메서드 호출 기능 제공
- 표현언어만의 기본 객체 제공
${expr}
예제
<jsp:include page="/module/${skin.id}/header.jsp" fflush="true" />
<b>${sessionScope.member.id}</b>님 환영합니다.
- 표현언어는 JSP의 스크립트요소 (Scriptlet, 표현식, 선언부)를 제외한 나머지 부분에서 사용될 수 있다.
표현언어의 기본 객체
- pageContext, pageScope, requestScope, sessionScope, applicationScope, param, paramValues, header, headerValues, cookie, initParam
// 기본 객체 사용 예
<body>
요청 URI: ${pageContext.request.requestURI} <br> // pageContext.getRequest().getRequestURI()
request의 name 속성 : ${requestScope.name} <br> // request.getAttribute("name")
code 파라미터 : ${param.code} // request.getParameter("code")
</body>
훨씬 깔끔하게 jsp를 작성하는 모습을 볼 수 있다.
${expr1, expr2}
객체 접근 규칙
- expr1이나 expr2가 null이면 null 반환
- expr1이 Map일 경우 expr2을 key로한 값을 반환
- expr1이 List나 Array이면 expr2가 정수일 경우 해당 정수 번째 index에 해당하는 값을 반환
- 이때 만약 expr2가 정수가 아닐 경우에는 오류가 발생
- expr1이 객체일 경우 expr2에 해당하는 getter 메서드에 해당하는 메서드를 호출한 결과 반환
표현 언어 비활성화 : JSP에 명시하기
<%@ page isELIgonored = "true" %>