2025-09-29
오늘 배운 것
EL & JSTL, include, Paging
EL & JSTL
EL & JSTL 개요
- JSP를 더 JSP답게 만드는 요소
- JSP에서 프로그래밍 요소를 최대한 제거 → 태그 중심
- EL (Expression Language)
- JSP의
<%= … %>표현식을 대체 - 웹 스코프에 저장된 attribute 접근에 용이
- JSP의
- JSTL (JSP Standard Tag Library)
- 자주 사용되는 기능을 정형화된 태그로 제공
- 별도 라이브러리 설치 필요
EL
EL 기본
- 4가지 웹 스코프(page, request, session, application)에 저장된 attribute를 쉽게 출력
- 기본 문법:
${attribute_name} - 작은 범위에서 큰 범위로 확장하며 attribute 검색
- 값이 없을 경우 null이 아닌 공백으로 출력
- JS의
$와 혼용 주의 → EL은 서버 측, JS는 클라이언트 측
EL 내장 객체
- JSP처럼 EL도 기본 내장 객체 제공 (pageScope, requestScope, sessionScope, applicationScope 등)
객체 접근법
- JavaBeans property 접근: getter/setter를 통한 접근
- Record: property 이름 그대로 접근
- Map: key로 접근
- 접근 방식:
.표기법 또는[]표기법
객체 메서드 호출
- property뿐만 아니라 일반 메서드도 호출 가능
EL 연산자
- 문자열
+결합 불가 (자동 캐스팅만 지원) - 나누기 연산
/, div는 정수끼리 연산해도 소수점 결과 반환 - 비교 연산자: 숫자, 문자열 모두 비교 가능
empty는 null, 빈 문자열, 길이 0 배열/컬렉션에 대해 true
JSTL
JSTL 개요
- Tag Library: JSP에서 재사용 가능한 태그를 모듈화
- JSTL: 코어, 포맷팅, XML 처리, DB 활용, 국제화 등 제공
- EL과 함께 사용 → Scriptlet 대비 간결한 JSP 작성 가능
JSTL 선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
prefix: JSP 내에서 사용할 접두사uri: 태그 라이브러리 식별자
변수 지원
<c:set>: 웹 스코프에 변수 저장<c:remove>: 변수 제거- scope 지정 가능 (page, request, session, application)
조건문
<c:if>: 단일 조건<c:choose>+<c:when>+<c:otherwise>: 다중 조건 분기
반복문
<c:forEach>: 횟수 기반 반복 또는 collection 순회- 속성
items: 대상 collectionvar: 각 반복에서의 값varStatus: 루프 상태(index, count 등)
include directive
페이지 모듈화
- JSP 공통 영역(header, footer 등)을 별도 파일로 분리 후 include
include directive
<%@ include file="header.jsp" %>
- include 되는 JSP는 최종적으로 하나의 Servlet으로 합쳐짐
- 공통 모듈에 root 변수, CSS, JS 등을 포함시켜 재사용
Paging
페이징을 위한 구성 요소
- SearchCondition: 검색 조건(name, email 등)
- Page: 페이징 정보 관리(page 번호, size, total 등)
화면 처리
- 링크 호출 / 검색 조건(form 전송) / 페이지 링크 호출 구분
- form submit 시 검색 조건 반영
- 페이지 링크 호출 시 Bootstrap Pagination 활용
- JavaScript로 페이지 이동 시 form 전송 방식과 연계