EL(Expression Language)
Scope의 속성값을 가져다 사용하는 것.
맵 객체의 경우는 맵의 Key
자바빈 객체의 경우는 자바빈의 Name(Property)
첫번째 변수에 저장된 객체가 List 객체이거나 배열 객체인 경우 “두번째변수”는 List 객체의 인덱스이거나 배열의 인덱스를 표현해야 한다. 이럴 경우에는 . 을 사용하면 에러가 발생.


EL 내장객체
pageContext 객체를 제외한 나머지 모든 객체가 MAP 객체
ServeltRequest는 HttpServletRequest의 부모
DTO Class가 없을 때 주로 사용하는게 Map Collection!!
DB연동이 아닌 순수한 값 전달을Paging 처리 클래스.
Map Key를 사용하여 EL을 사용하는 방법이 있다.
@SuppressWarnings : 경고를 제거하는 어노테이션
EL 내장객체
- Scope
Scope 객체의 속성명이 다른 경우 : equest.setAttribute("requestName", "임꺽정") ⇒ ${requestName }
Scope 객체의 속성명이 같은 경우 : request.setAttribute("name", "임꺽정"); ⇒ ${requestScope.name }
- Request Parameter
<%=request.getParameter(”name”) ⇒ ${param.”name”}
<%=request.getParameterValues(”name”)[0] ⇒ ${paramValues.”name”[0]}
- Request Header
<%=request.getHeader("host") %> ⇒ ${header.host }
<%=request.getHeaders("accept").nextElement() %> ⇒ ${headerValues.accept[0] }
- Cookie
<% Cookie[] cookies=request.getCookies(); String userName=""; for(Cookie cookie:cookies) { if(cookie.getName().equals("userName")) { userName=cookie.getValue(); } } %>
⇒ ${cookie.userName.value }
${cookie.JSESSIONID.value }
- Context Init Parameter
<%=config.getServletContext().getInitParameter("name") %> ⇒ ${initParam.name}
- pageContext
<%=request.getContextPath() %>
⇒ <%=((HttpServletRequest)pageContext.getRequest()).getContextPath() %>
⇒ ${pageContext.request.contextPath }
EL 함수
함수는 매개변수를 반환받아 처리에 사용
메소드는 필드를 반환받아 처리에 사용
tld파일은 xml기반으로 만들어진 언어. xml파일로 만든다.
엘리먼트를 마음대로 쓰는게 아닌 정해진 규칙에 의해서 사용해야 한다. → 규칙에 의해서 생성해야 EL 함수로 사용가능 → Valid XML ( 규칙에 의해 생성된 XML 파일을 뜻함)
(DTD or Schema 파일을 이용, Schema 파일을 사용하는 것을 권장함)





no prefix로 바꿔줘야 EL 함수가 사용하는데 문제가 없음!!

function : EL 함수를 등록하기 위한 상위 엘리먼트
name : EL 함수명을 설정하는 엘리먼트
function-class : EL 함수에 의해 호출되는 메소드가 선언된 클래스를 설정하는 엘리먼트
function-signature : EL 함수에 의해 호출되는 메소드를 설정하는 엘리먼트
사용방법 : ${elfun:hello("홍길동") }
EL 연산자
산술, 논리, 관계, empty

'Web Dev' 카테고리의 다른 글
| MyBatis Framework (0) | 2022.02.24 |
|---|---|
| Custom Tag & JSTL (0) | 2022.02.22 |
| MVC Pattern - 2 (0) | 2022.02.18 |
| MVC Pattern - 1 (0) | 2022.02.17 |
| Ajax - 개념 및 DB 연동 (0) | 2022.02.15 |