expression language

JSP, Servlet 공부를 하면서 참고한 서적입니다.

프로젝트로 배우는 자바 웹 프로그래밍

표현 언어

EL(Expression Language)는 표현 언어라고 합니다. EL은 View 역할을 수행하는
JSP를 더욱 효과적으로 만들 수 있습니다. 표현언어는 간단한 방법으로 데이터를
표현하려고 고안된 언어입니다.

SPEL(Simplest Possible Expression Language)

표현 언어를 사용하면 < %, < =%와 같은 스크립트릿 구문들을 없앨 수 있습니다.

  • 문법

    1. 표현언어는 $로 시작한다.
    2. { 표현식 } 으로 이루어 진다.
    3. 표현식에는 기본적으로 변수이름, 객체이름.멤버변수이름 구조로 이루어 진다.
    4. 표현식에는 부가적으로 숫자, 문자열, boolean, null과 같은 상수 값도 올 수 있다.
    5. 기본적인 연산이 가능하다.
  • EXMAPLE

   < %= (String)session.getAttribute("memberName") % >

   // 위 Scriptlet 코드를 아래와 같이 EL로 변경 가능
   $ { memberName } // sessionScope를 생략할 수 있다.
   $ { sessionScope.memberName }

   // member 객체의 getId() 메소드 호출과 동일
   ${member.id}

예를들어 < select name=”sel” > select 태그에 다음과 같이 parameter가 있으면
sel이라는 매개변수를 가져올때 ${param.sel}와 같이 param.매개변수로 사용할 수 있습니다.
request.getParameter(“sel”); 과 동일합니다.

  • EL에서 사용할 수 있는 내장객체

    내장객체 특징
    pageScope page 범위에 포함된 속성 값에 접근할 수 있는 객체이다.
    requestScope request 범위에 포함된 속성 값에 접근할 수 있는 객체이다.
    sessionScope session 범위에 포함된 속성 값에 접근할 수 있는 객체이다. 생략가능
    applicationScope application 범위에 포함된 속성 값에 접근할 수 있는 객체이다.
    param request.getParameter(“XXX”) = ${param.XXX}
    paramValues request.getParameterValues(“XXX”) = ${paramValues.XXX}
    header request.getHeader(“XXX”) = ${header.XXX}
    headerValues request.getHeaderValues(“XXX”) = ${headerValues.XXX}
    initParam context의 초기화 매개변수 값
    cookie 쿠키 정보에 접근할 수 있는 객체
    pageContext pageContext 객체

다음은 산술 연산자와 비교, 조건, 관계 연산자에 대해 배워 봅시다.

  • 산술, 비교, 조건, 관계

    연산자 특징
    + 더하기
    - 빼기
    * 곱하기
    / or div 나누기
    % of mod
    == or eq 같다
    != or ne 같지 않다
    < or lt 좌변이 우변보다 작다
    <= or le 좌변이 우변보다 같거나 작다
    > or gt 좌변이 우변보다 크다
    >= or ge 좌변이 우변보다 같거나 크다
    a ? b : c a가 참이면 b, 거짓이면 c 반환
    && or and AND 연산
    ll, or OR 연산
    ! or not NOT