on
JSP - JSTL (표준 태그 라이브러리)
JSP - JSTL (표준 태그 라이브러리)
728x90
JSTL(표준 태그 라이브러리)
JSP는 와 같은 태그를 개발자가 추가할수 있는 기능을 제공하는데 이를 커스텀 태그라고 한다.
커스텀 태그 중 많이 사용되는 것들 을모아 JSTL(JSP Standard Teg Library)라는 표준을 만들었다.
JSTL을 사용하면 스크립트릿 코드의 사용을 줄이면서 간결하고 이해하기 쉬운JSP 코드를 작성할 수 있다 .
기존의 JSP코드는 스크립트 코드와 HTML코드가 뒤섞여 코드가 길어지거나, 코드가 복잡해질수록 가독성이 떨어지고, 코드를 작성할때 더 주의를 기울여야 한다.
JSP는 실행코드와 화면을 구성하는 HTML코드를 쉽게 섞을 수 있어서 개발이 편리하지만 반대로 섞이면서 코드의 가독성은 나빠진다.
반복문이나 조건문을 JSTL을 사용하여 처리한다면 보기 좋고 이해하기쉬운 코드로 작성할수 있다.
1. JSTL사용 전 taglib디렉티브 추가
- prefix에 들어가는 string은 JSP에서 코어 태그 라이브러리를 호출할 때 사용할 접두어이다.
☞위의 코드는 prefix가 "c"이므로 , 등으로 사용됨
☞만약 prefix를 "A"로 설정한다면 , 로 사용되어야함. 하지만 기본적으로 prefix는 "c"로 정의함.
- uri 속성값은 "http://java.sun.com/jsp/jstl/core"로 설정해야함.
2. 코어 태그
<코어태그 라이브러리>
2.1 흐름제어
2.1-1) 태그
- 태그 test 속성 에는 true나 false에 해당하는 boolean값이 온다. (조건 작성)
- 또한 test속성은 표현식이나 EL 또는 정적 문자열을 값으로 가질수 있다.
태그 예시1 : JSP기존 코드, JSTL코드 비교 태그 예시2
2.1-2) , , 태그
- 자바의 switch구문과 if-else블록을 혼합한 형태로 다중 조건처리시 사용한다.
- 태그는 다수의 태그를 중첩 해 사용하고, 각각의 는 test속성의 값이 true일때 내부블록 수행한다. 만약 모든 태그가 false일 경우에 를 실행함.
2.1-3) 태그
- 태그는 자바의 for, do-while등을 대신해서 사용할 수 있다.
- 태그는 배열, 리스트, Map에 저장되어 있는 값들을 순차적으로 처리할 때 사용한다.
- 태그의 items속성 에는 Map, list, Array배열 등이 올 수 있다.
- 태그의 var속성 으로 이름 지정해 collection을 순차적으로 출력해냄.
- 태그의 begin, end속성 을 통해 자바의 for문과 같은 효과를 낼수도 있다.
☞ 원하는 범위만 실행할수 있도록 지정!
- 태그 step속성 을 사용해 증감값 지정.
< 태그의 설명 요약 >
예제 : 조건설정해 코드 반복
예제2 : 파라미터로 값을 받아서
예제3 : 1~9단의 구구단
- 배열사용
- List 사용
- Map사용
2.2 변수 지원
2.2-1) 태그
- 태그는 EL 변수의 값이나, EL 변수의 프로퍼티 값을 지정할 때 사용.
- 태그의 var 속성 : 값을 저장할 EL 변수의 이름을 지정
- 태그의 value속성 : 변수의 값을 지정. 표현식, EL, 정적인 텍스트를 사용해서 값을 지정.
- 태그의 scope속성 : 변수를 저장할 영역을 지정한다. 값은(page, request, session, application)중 하나가 옴. 지정하지 않는다면 page가 기본값으로 옴.
예제1 예제2
2.3 URL처리
2.3-1) 태그
- 태그는 URL을 생성해주는 기능 제공.
- 태그의 var속성, scope속성은 생략 가능.
- 태그의 var속성을 지정하면 해당 변수에 생성한 URL 지정.
- 태그 내 태그를 이용해 파라미터를 URL에 추가할 수 있음.
- 태그의 href속성에 URL경로 지정.
- url - 절대URL : root 경로 (http:/)를 포함한 완전한 URL
- 상대 URL : 슬래시('/')로 시작하지 않음
태그 예제
2.4 기타태그
2.4-1) 태그
- JSP에 데이터 출력할때 사용하는 태그
-태그의 value속성 : 출력할 값을 나타냄.
-태그 default속성 : value속성에서 지정한 값이 존재하지 않을 때 사용될 값 지정
태그 예시
from http://shinny.tistory.com/76 by ccl(A) rewrite - 2021-11-29 21:01:22