JSP

[JSP] El과 JSTL 사용하기

wooriko 2020. 8. 20. 10:27

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. 예시

set
if
choose (switch 같은 태그)
forEach (자바의 반복분)
import

 

날짜 format
split
합계구하기
개행처리