[TIL] JSTL & EL

bae_mung·2021년 10월 13일
0

Study

목록 보기
7/12

JSTL : JSP Standard Tag Library

<%@ taglib prefix="별칭" uri="tld경로"%>

표준화된 Custom Tag

  • core : if(단독) choose ~ (when + otherwise)(분기) forEach(횟수기반, 반복객체) set(var 생성)
  • formatting
  • sql : mvc 패턴에서 쓸 일 없음
  • xml

EL : Expression Language

<c:forEach items="반복 대상 객체" var="꺼내어진 대상 객체 이름" scope="저장해 줄 스코프(생략 시 페이지 스코프(page))"></c:forEach>

여기서 items에는 객체 참조값이 와야하고, var에는 문자열이 와야하는데 JSTL에는 둘 다 문자열로 인식하기 때문에 EL이 필요하다

<c:if test="age>10"></c:if>

마찬가지로 test에 오는 논리식 연산같은 경우에도 마찬가지로 JSTL에서 문자열로 인식하기 때문에 EL이 필요한 것이다.

  1. 출력 담당 (output 처리 위치)
    • ex ) HTML태그 위치
  2. JSTL 속성 처리 담당 (JSTL 속성값 위치)
    • ex ) <c:if test="조건식"> : true / false
    • ex ) <c:forEach items="반복객체"> : 객체참조

EL 내장객체 (11개)

EL 내장객체는 JSTL 내장객체와 다름!!

${firstThing.secondThing....}

firstThing에 올 수 있는 것 2가지

  1. EL 내장객체 O
  2. EL 내장객체 X : 4개 보관함에 저장되어 있는 attribute key 로 본다!
    오타나도 오류가 나는게 아니라 해당 이름의 속성을 찾아감.
    탐색 순서 : pageContext -> request -> session -> servletContext
  1. pageScope : pageContext attribute만 모아놓은 Map
  2. requestScope : request attribute만 모아놓은 Map (K, V : attr명, object)
  3. sessionScope : session attribute만 모아놓은 Map
  4. applicationScope : servletContext attribute만 모아놓은 Map
  5. params : request(단일) parameter만 모아놓은 Map (K, V : param명, value)
  6. paramValues : request(배열) parameter만 모아놓은 Map
  7. header
  8. headerValue
  9. cookie
  10. initParam
    Map유형 (10개)
  11. pageContext(Getter, Setter, Beans) : 유일하게 Map이 아님
profile
SSAFY 6th 👨‍💻🔥

0개의 댓글