-
[헤드퍼스트 Servlet&Jsp] 8-2. EL로 파라미터 불러오기개발입문/Servlet&JSP 2017. 2. 26. 15:38
javaBean 은 jsp 에서 객체를 다루는 방법입니다.
객체의 상태값에 따라서 웹페이지를 동적으로 출력하게끔 도와줍니다.
(물론 Servlet에서 객체의 상태값에 따라 액션 자체도 바뀌게 됩니다.)
EL 은 객체의 멤버변수를 직관적으로 불러올 수 있게 합니다. 직관적으로.
물론 함수도 가능합니다. (EL 함수를 통해)
자바를 안다고 방심하면 안됩니다.
자바와 비슷하게 생겼는데 자바에서는 되는데, EL 에서는 안되는 경우도 있다고 합니다. +_+
EL
Expression Language
EL 표현식은 항상 중괄호 {} 로 묶고,
제일 앞에 달러 기호 $ 를 붙입니다.
${person.name}
표현식의 첫번째 변수는
내장 객체 or 속성입니다.
. 연산자
${person.name}person
EL 내장객체 or 속성 / Map 또는 JavaBean
nameMap 의 Key or Bean 의 property자바 명명규칙을 반드시 따라야 합니다.즉, ${musicList.1} 는 안됩니다.[] 연산자
(배열 연산자 아님)
${musicList["Gravity"]}${musicList[1]} or ${musicList["1"]}
musicList
EL 내장객체 or 속성 / Map 또는 JavaBean
그리고 리스트나 배열
Gravity / 1 / "1"Map 의 Key or Bean 의 property배열과 리스트인 경우 인덱스(문자열도 숫자로 자동 변환)" "가 없다면 (!)[Genre] Genre 라는 속성으로 해석, 즉 참조값 지칭["Ambient"] HashMap 의 Key[] 안 내장표현식 가능Music is ${musicMap[MusicType[0]]}Music is ${musicMap["Ambient"]}Music is zero7EL 내장 객체
어떤 정보에 대한 하위 값을 가져올 수 있을까?
우선 pageContext 외 모든 내장객체는 MAP 입니다.
즉, key-value 로 구성된 값의 집합입니다.
생존범위 속성 맵
pageScope, requestScope,
sessionScope, apllicationScope
요청 파라미터 맵
param, paramValues
요청 헤더 맵
header, headerValues
쿠키 맵
cookie
컨텍스트 초기화 파라미터 맵
initParam
pageContext 객체 참조 (빈)
pageContext
- 요청 파라미터 맵
Request param food is: ${param.food} <br>
First food request param: ${paramValues[0]} <br>
First food request param: ${paramValues[1]} <br>- 요청 헤더 맵
Host is: ${header["host"]} <br>
Host is: #{header.host} <br>
- 쿠키, 초기화 파라미터${cookie.userName.value}
email is: ${initParam.mainEmail}
생존범위 속성 맵과
pageContext 객체 참조 (빈) 의 차이
생존범위 속성 맵 (e.g. requestScope)
requestScope 에 바인딩 된 속성 Attribute 의 집합
pageContext 빈
request 자체의 정보 (e.g. request.getMethod() 의 메소드)
pageContext 의 프로퍼티 request 의 (또, 내장) 프로퍼티 method
Method is: <%= request.getMethod() %> // 스크립트
${pageContext.request.method} //EL
request? requestScope?request 라는 내장객체는 존재하지 않고,
requestScope은 request 에 바인딩 된 속성들을 담은 맵일 뿐.
프로퍼티 Property 와 속성 Attribute @___@
Property는 괜히 한국말로 직역하면 속성 같지만.
절대~ 헷갈리지 맙시다~
그 다음 시간에는 EL 함수를 정리해봅니다~
'개발입문 > Servlet&JSP' 카테고리의 다른 글
[헤드퍼스트 Servlet&Jsp] 9-1. JSTL: JSP 표준 태그 라이브러리 (0) 2017.03.02 [헤드퍼스트 Servlet&Jsp] 8-3. EL에서 함수 사용 (0) 2017.02.26 [헤드퍼스트 Servlet&JSP] 7-3 EL Expression Language 소개 (0) 2017.02.19 [헤드퍼스트 Servlet&JSP] 7-2. JSP LifeCycle 및 내장객체 사용 (0) 2017.02.18 [헤드퍼스트 Servlet&JSP] 7-1. JSP 요소 (0) 2017.02.18