Java Server Pages

JSP EL, JSTL

나주나주 2024. 2. 7. 15:39

EL

: Expression Language

EL 태그: 좁은 영역부터 적용, 자동 형변환!!
setAttribute: 생성
post, get : request 영역
param.name == 파라미터로 넘어가니까 객체 생성 안해도 되나봄

JSP: 영역에 모든 객체가 Object타입으로 저장됨 형변환 필요
EL 태그: 좁은 영역부터 적용, 자동 형변환!!


JSTL

  • JSP Standartd Tag Library
  • 스크립틀릿을 사용하지 않는다.
  • (EL과 마찬가지로) 4가지 영역의 저장된 속성값 사용
  • maven repository에서 jar파일을 받아 WEB-INF/lib에 등록 (javax == 9, jakarta == 10, 버전에 유의)
  • taglib 지시어 사용 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

 

Core 태그

접두어 기능 URL
c 변수 선언, 조건문, 반복문, URL 처리 http://java.sun.com/jsp/jstl/core
set EL에서 사용할 변수 설정 == setAttribute() (생성)
remove 설정한 변수 제거 == removeAttribute()
if 단일 조건 처리, else문이 없다
choose when ~ otherwise를 이용하여 다중 조건 처리
forEach 반복문 (for, forEach)
forTokens 구분자로 분리된 각각의 토큰을 처리
redirect 지정 경로 이동 == sendRedirect()
import 외부 페이지 삽입
url 경로 설정
out 내용 출력
catch 예외 처리

target: 자바빈즈 설정(객체)

property: 자바빈즈의 속성, 멤버 변수의 값 저장

<c:set var="변수명" value="저장할 객체, 컬렉션" scope="영역"/>

<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값" />

Formattion 태그

접두어 기능 URL
fmt 숫자, 날짜, 시간의 포맷 지정 http://java.sun.com/jsp/jstl/fmt

 

XML 태그

접두어 기능 URL
x XML 파싱 http://java.sun.com/jsp/jstl/xml

 

Function 태그

접두어 기능 URL
fn 컬렉션, 문자열 http://java.sun.com/jsp/jstl/fn

 

SQL 태그

접두어 기능 URL
sql 데이터베이스 연결 및 쿼리 실행 http://java.sun.com/jsp/jstl/sql

Token

: 각각의 분리된?

 

c:forEach

  용도 예문
일반 for 시작, 종료 지정 <c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값" />
향상 for 배열, 컬렉션 <c:forEach var="변수명" items="컬렉션, 배열" />

 

varStatus: 루프의 상태 정보를 확인하는 변수명 지정

varStatus 속성 태그 일반 for 향상 for
current var에 지정한 현재 루프의 변수값 반환 현재 루프의 실제 요소 반환
index var에 지정한 현재 루프의 변수값 반환 현재 루프의 인덱스 표시
count 실제 반복횟수 1 ~ 마지막
first 루프의 처음일 때 true 반환
last 루프의 마지막일 때 true 반환

 


Tip) JSTL 조건식

EL 양쪽에 빈 공백이 있는 경우 false (ex) value = "     {true}요기"

EL이 아닌 정수를 지정하면 false

 

'Java Server Pages' 카테고리의 다른 글

JSP 모델2 미니 프로젝트  (0) 2024.02.13
JSP Servlet P217부터  (0) 2024.02.13
JSP 모델2 준비를 위한 dto dao controller.. 등등  (0) 2024.02.05
JSP 세션, 액션 태그  (0) 2024.02.05
JSP JDBC ~ (0201 ~02)  (0) 2024.02.01