[JSP] El과 JSTL 사용하기
1. EL (Expression Language)
: EL은 JSP의 출력문법을 대체하는 표현 언어
- JSP에서의 값 표기법 : <%= i + 1 %>
i는 변수
- EL 값 표기법 : ${ i + 1 }
i는 이름
${param.abc}
- 값을 찾을 때 EL은 작은 Scope에서 큰 Scope으로 찾는다 (page > request > session > application)
- setAttribute("key", value) : 값을 넣는다
- getAttribute("key") : 값을 가져온다
- removeAttribute("key") : 값을 지운다
- 내장객체
1) pageScope → 페이지Scope에 접근
2) request Scope → 리퀘스트Scope에 접근
3) sessionScope → 세션Scope에 접근
4) applicationScope → 어플리케이션Scope에 접근
5) param → 파라미터값 얻어올때 ( 1개의 Key에 1개의 Value )
6) paramValues → 파라미터값 배열로 얻어올때( 1개의 Key에 여러개의 Value)
7) header → 헤더값 얻어올때 ( 1개의 Key에 1개의 Value )
8) headerValues → 헤더값 배열로 얻어올때 ( 1개의 Key에 여러개의 Value )
9) cookie → ${cookie. key값. value값}으로 쿠키값 조회
10) initParam → 초기 파라미터 조회
11) pageContext → 페이지컨텍스트 객체를 참조할때
- paramValues 나 headerValues 사용법
1) $ { paramValues . boadDto [0] }
2) $ { paramValues ["bardDto"] [1] }
Values 옆에 점을 찍는 방법과 대괄호로 묶어 사용하는 2가지 방법이 있음
1)번에서는 인덱스가 0부터 시작, 2)번에서는 인덱스가 1부터 시작
2. JSTL ( JavaServer Pages Standard Tag Library )
: JSTL은 태그를 통해 JSP 코드를 관리하는 라이브러리
- 연산이나 조건문, 반복문 (if, for, DB처리)을 편하게 처리할 수 있음
- 라이브러리이기 대문에 JSTL 사용시 pom.xml에 라이브러리를 추가해야함 (Maven Repository에서 코드 복사 가능)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
- View(.jsp) html 태그 상위에 아래의 태그를 추가해야함
- 태그 종류
1) Core ( <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> )
: 일반 프로그래밍에서 제공하는 것과 유사한 변수 선언
: 실행흐름의 제어기능 제공
: 페이지 이동 기술 제공
2) Formatting ( <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> )
: 숫자, 날짜, 시간 포매팅 기능 제공
: 국제화, 다국어 지원 기능 제공
3) Function ( <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> )
: 문자열을 제공하는 함수 제공
4) DataBase ( <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> )
: DB의 데이터를 입력/수정/삭제/조회 하는 기능 제공
5) XML ( <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%> )
: XML문서를 처리할 때 필요한 기능 제공
3. 예시