[JSP] EL

yenn·2021년 2월 1일
0

JSP

목록 보기
6/8
post-thumbnail

EL, Expression Language

표현언어는 값을 표현하는데 사용되는 스크립트 언어, JSP의 기본 문법을 보완하는 역할

EL이 제공하는 기능

  • JSP의 scope에 맞는 속성 사용 → 쉽게 scope 변수 값 접근 가능
  • 집합 객체에 대한 접근 방법 제공
  • 수치연산, 관계 연산, 논리 연산자 제공
  • 자바 클래스 메소드 호출 기능 제공
  • 표현언어만의 기본 객체 제공

EL의 표현 방법

  • ${expr } , expr: 표현언어가 정의한 문법에 따라 값을 표현하는 식

    → JSP의 스크립트 요소를 제외한 나머지 부분에서 사용 가능, 표현식을 통해서 편리하게 값 출력

*expr값의 이름이 중복 될 때에는 작은 범위 scope인 pageContext부터 찾기 시작

‣ EL로 변수 사용 (jsp)

EL의 기본 객체

  • pageContext : JSP의 page 기본 객체
  • pageScope : pageContext 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체
  • requestScope : request 기본 객체에 저장된 속성의 <속성, 값> 매핑을 저장한 Map 객체
  • sessionScope : session 기본 객체에 지정된 속성의 <속성, 값> 매핑을 저장한 Map객체
  • applicationScope : application 기본 객체에 지정된 <속성. 값> 매핑을 저장한 Map객체
  • param : 요청 파라미터의 <parameter 이름 , 값> 매핑을 저장한 Map 객체, 값의 타입은 String[]으로 request.getParameter(이름) 결과와 동일
  • paramValues : 요청 파라미터의 <parameter 이름 , 값배열> 매핑을 저장한 Map 객체, 값의 타입은 String[]으로 request.getParameterValues(이름) 결과와 동일
  • header : 요청 정보의 <헤더이름, 값> 매핑을 저장한 Map 객체, request.getHeader(이름) 결과와 동일
  • headerValues : 요청 정보의 <헤더이름, 값 배열> 매핑을 저장한 Map 객체, request.getHeaderValues(이름) 결과와 동일
  • cookie : <쿠키 이름, Cookie> 매핑을 저장한 Map 객체, request.getCookies() 로 구한 Cookie 배열로부터 매핑을 생성
  • initParam: 초기화 파라미터의 <이름, 값> 매핑을 저장한 Map 객체, application.getInitParamete(이름) 의 결과와 동일

객체 접근 규칙

${<expr1>.<expr2>}

  • expr1 이나 expr2가 null이라면 null을 반환
  • expr1이 Map 일 경우 expr2를 key로 한 값을 반환
  • expr1이 List 나 배열이면 expr2가 정수일 경우 해당 정수 번째 index에 해당하는 값을 반환
  • 정수가 아닐 경우에 오류 발생
  • expr1이 객체일 경우 expr2에 해당하는 getter 메소드에 해당하는 메소드를 호출한 결과를 반환

표현언어의 수치 연산자

  • '+'

  • '-'

  • '*'

  • '/ or div'

  • '% or mod'

    • 숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자 수행

    • 숫자로 변환 할 수 없는 객체와 수치 연산자를 사용하면 에러

    • 수치 연산자에서 사용되는 객체가 null이면 0으로 처리

    • / 나 % 가 html 태그나 예약어로 잡혀있을 경우 div나 mod를 사용해서 수치 연산

비교 연산자

  • == or eq
  • != or ne
  • < or lt
  • > or gt
  • <= or le
  • >= or ge

*문자열 비교 ${str == '값'}str.compareTo("값") == 0 과 동일

‣ EL로 연산자 사용 (jsp)

논리 연산자

  • && or and
  • || or or
  • ! or not

empty 연산자, 비교 선택 연산자

empty <값>

  • 값이 null 이면 true 리턴
  • 값이 빈문자열 "" 이라면 true 리턴
  • 값이 길이가 0인 배열이면 true 리턴
  • 값이 빈 Map이면 true를 리턴
  • 값이 빈 Collection 이면 true를 리턴
  • 이 외의 경우는 false 리턴

<수식> ? <값1> : <값2>
: <수식>의 결과값이 true이면 값1 을 리턴하고 , false 이면 값2를 리턴

연산자 우선순위

  1. []
  2. ()
  3. -(단일) , not , ! , empty
  4. *, / , div, %, mod
  5. +, -
  6. < , > , <= , >=, lt, gt, ge, le
  7. ==, != , eq, ne
  8. &&, and
  9. || , or
  10. ? , :

표현언어 비활성화

→ JSP에 명시하기

<%@ page isELIgnored = "true"%>

profile
Junior BackendEngineer 😎

0개의 댓글