일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 람다식
- StringBuffer클래스
- StringBuffer
- 예외처리
- 입출력
- try-catch
- Interface
- for문
- 에러
- 커넥션 풀
- 객체
- 변수
- 메서드
- Connection
- ToString
- 인터페이스
- File입출력
- I/O
- array
- 예외
- 내장 객체 영역
- JSP
- 제어자
- 객체지향
- 배열
- 다형성
- 접근제어자
- DB
- java
- 상속
- Today
- Total
ksouth9
JSTL(JSP Standard Tag Library) 본문
JSTL
JSTL은 JSP에서 빈번하게 사용되는 조건문, 반복문 등을 처리해주는 태그를 모아 표준으로 만들어 놓은 라이브러리이다.
JSTL 태그
종류 | 기능 | 접두어 | URI |
Core 태그 | 변수 선언, 조건문/반복문, URL처리 | c | http://java.sun.com/jsp/jstl/core |
Formatting 태그 | 숫자, 날짜, 시간 포맷 지정 | fmt | http://java.sun.com/jsp/jstl/fmt |
XML 태그 | XML 파싱 | x | http://java.sun.com/jsp/jstl/xml |
Function 태그 | 컬렉션, 문자열 처리 | fn | http://java.sun.com/jsp/jstl/functions |
SQL 태그 | 데이터베이스 연결 및 쿼리 실행 | sql | http://java.sun.com/jsp/jstl/sql |
사용방법
<%@ taglib prefix="접두어" uri="URI" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> // 예시
JSTL은 JSP의 기본 태그가 아닌 확장 태그이므로 사용하기 위해서는 별도의 라이브러리가 필요하다.
htttps:///mvnrepository.com/artifact/javax.servlet/jstl/1.2 링크에서 파일을 다운받은 후 /WebContentWEB-INF/lib 폴더에 넣어주기만 하면 설정은 끝이 난다.
코어(Core) 태그
Core 태그는 프로그래밍 언어에서 가장 기본이 되는 변수 선언, 조건문, 반복문 등을 대체하는 태그를 제공한다.
태그명 | 기능 |
set | EL에서 사용할 변수를 설정한다. setAttribute() 메서드와 동일한 기능. |
remove | 설정한 변수를 제거한다. removeAttribute() 메서드와 동일한 기능. |
if | 단일 조건문을 주로 처리한다. else문이 없다. |
choose | 다중 조건을 처리할 때 사용한다. 하위에 when~otherwise 태그 있음. |
forEach | 반복문을 처리할 때 사용한다. 일반 for문과 향상된 for문 두 가지 형태로 사용 가능. |
for Tokens | 구분자로 분리된 각각의 토큰을 처리할 때 사용한다. StringTokenizer클래스와 동일한 기능. |
태그명 | 기능 |
import | 외부 페이지를 삽입할 때 사용한다. |
redirect | 지정한 경로로 이동한다. sendRedirect() 메서드와 동일한 기능. |
url | 경로를 설정할 때 사용한다. |
out | 내용을 출력할 때 사용한다. |
catch | 예외처리에 사용한다. |
<c:set> 태그
EL에서 사용할 변수나 자바빈즈를 생성할 때 사용한다. JSP에서 영역에 속성을 저장할 때 사용하는 setAttribute() 메서드와 같은 역할이다.
사용방법
<c:set var="변수명" value="값 scope="영역 />
또는
<c:set var="변수명" scope="영역">value 속성에 들어갈 값</c:set>
<c:set> 태그 속성
속성명 | 기능 |
var | 변수명을 설정한다. |
value | 변수에 할당할 값. |
scope | 변수를 생성할 영역을 지정한다. page가 기본값. |
target | 자바빈즈를 설정한다. |
property | 자바빈즈의 속성, 즉 멤버 변수의 값을 지정한다. |
자바빈즈나 컬렉션 생성할 때 사용방법
<c:set var="변수명" value="저장할 객체 혹은 컬렉션" scope="영역" />
<c:set target="var로 설정한 변수명" property="객체의 속성명" value="속성값" />
<c:remove> 태그
<c:set> 태그로 설정한 변수를 제거할 때 사용한다. JSP에서 영역의 속성을 제거할 때 사용하는 removeAttribute() 메서드와 같은 역할이다.
사용방법
<c:remove var="변수명" scope="영역" />
<c:remove> 태그 속성
속성명 | 기능 |
var | 삭제할 변수명을 설정한다. |
scope | 삭제할 변수의 영역을 지정한다. 지정하지 않으면 모든 영역의 변수가 삭제된다. |
<c:if> 태그
자바의 if와 동일하게 제어 구문을 작성할 때 사용한다. 하지만 else가 별도로 없기 때문에 일련의 여러 조건을 나열하는 형태로 작성하기는 어렵다.
사용방법
<c:if test="조건" var="변수명" scope="영역">
조건이 true 일 때 출력할 문장
</c:if>
<c:if> 태그 속성
속성명 | 기능 |
test | if문에서 사용할 조건을 지정한다. |
var | 조건의 결과를 저장할 변수명을 지정한다. |
scope | 변수가 저장될 영역을 지정한다. |
<c:choose>, <c:when>, <c:otherwise> 태그
<c:choose> 태그는 다중 조건을 통해 판단해야 할 때 사용한다. 하위 태그로 <c:when>, <c:otherwise> 태그를 함께 사용한다.
사용방법
<c:choose> // 자바 코드
<c:when test="조건1">조건1을 만족하는 경우</c:when> if(조건1) { ...
<c:when test="조건2">조건2를 만족하는 경우</c:when> } else if (조건2) {...
<c:otherwise>아무 조건도 만족하지 않는 경우</c:otherwise> } else {...}
</c:choose>
<c:forEach> 태그
자바에서 for문(반복문)기능을 하는 태그이다. 시작과 종료를 지정하는 일반 for문과, 배열이나 컬렉션을 순회할 때 사용하는 향상된 for문 모두 사용할 수 있다.
사용방법(일반for문)
<c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값" />
for(int i(var) = 0(begin); i < 10(end); i+=2(step) ) { ... }
사용방법(향상된 for문)
<c:forEach var="변수명" items="컬렉션 혹은 배열" />
for( int number(var) : numbers(items) ) { ... }
<c:forEach> 태그 속성
속성명 | 기능 |
var | 변수명을 지정한다. |
begin | 시작값을 지정한다. |
end | 종료값을 지정한다. |
step | 증가할 값을 지정한다. |
items | 반복을 위한 객체를 지정한다. 배열, 컬렉션 등을 지정할 수 있다. |
varStatus | 루프의 현재 상태를 알려주는 변수의 이름을 지정한다. |
속성명 | 일반for문 | 향상된 for문 |
current | var에 지정한 현재 루프의 변수값 반환 | 현재 루프의 실제 요소를 반환 |
index | var에 지정한 현재 루프의 변수값 반환 | 현재 루프의 인덱스를 표시(0~마지막) |
count | 실제 반복 횟수(1~마지막) | 일반 for문과 동일 |
first | 루프의 처음일 때 true 반환 | 일반 for문과 동일 |
last | 루프의 마지막일 때 true 반환 | 일반 for문과 동일 |
<c:forTokens> 태그
StringTokenizer 클래스처럼 구분자를 기준으로 문자열을 나눠 토큰의 개수만큼 반복해준다.
사용방법
<c:forTokens items="문자열" delims="문자열 구분자" var="변수명" />
※토큰 : 문자열을 구분할 구분자로 분리되는 문자열의 구성 요소 예) 전화번호 010-1234-5678 구분자 하이픈(-)으로 분리하면 "010", "1234", "5678"이 각각 토큰이 된다.
<c:import> 태그
<jsp:include> 액션 태그와 같이 외부 파일을 현재 위치에 삽입할 때 사용한다. 또한 같은 웹 애플리케이션에 속하지 않은 외부의 페이지도 삽입할 수 있다.
사용방법 - 현재 위치에 외부 페이지를 삽입
<c:import url="페이지 경로 혹신 URL" scope="영역 />
사용방법 - var속성 이용
<c:import url="페이지 경로 혹은 URL" var="변수명" scope="영역" />
${ 변수명 }
이렇게 var 속성을 사용하면 외부페이지가 지정한 변수에 저장되고, 나중에 이 변수명을 통해 원하는 위치에 삽입할 수 있다. 즉, 선언과 삽입을 분리할 수 있다.
사용방법 - <c:param> 태그 사용
<c:import url="페이지 경로 혹은 URL?매개변수1=값1" >
<c:param name="매개변수2" value="값2" />
</c:import>
매개변수로 전달할 값이 있다면 url에 쿼리스트링으로 직접 추가하거나 <c:param> 태그를 사용한다.
<c:redirect> 태그
response 내장 객체의 sendRedirect()와 동일하게 페이지 이동을 처리한다.
사용방법
<c:redirect url="이동할 경로 및 URL" />
매개변수를 전달하고 싶다면 <c:import> 태그와 동일하게 <c:param> 태그를 사용한다.
<c:url> 태그
지정한 경로와 매개변수를 이용해서 컨텍스트 루트를 포함한 URL을 생성한다. 생성된 URL은 <a> 태그의 href 속성이나, <form> 태그의 action 속성에 사용할 수 있다.
사용방법 - 즉시 출력
<c:url value="설정한 경로" scope="영역" />
사용방법 - var속성
<c:url value="설정한 경로" scope="영역" var="변수명" />
// JSP코드
${ 변수명 }
<c:out> 태그
JSP의 표현식처럼 변수를 출력할 때 사용한다.
사용방법
<c:out value="출력할 변수" default="기본값" escapeXml="특수문자 처리 유무" />
표현식과 다른 점은 출력할 변수가 null 일 때 default 속성에 지정한 기본값이 출력된다. escapeXml 속성을 true로 설정하면 HTML 태그를 자유롭게 표현할 수 있다.
<c:out> 태그 속성
속성명 | 기능 |
value | 출력할 변수를 지정한다. |
escapeXml | 특수 문자를 변환할지 여부를 결정한다. 기본값은 true로 특수 기호를 그대로 출력한다. |
default | value 속성에 값을 지정하지 않을 경우 출력할 값을 지정한다. |
<c:catch> 태그
발생한 예외를 잡아 처리하는 역할이다. 예외가 발생하면 지정한 변수에 에러 메시지가 저장되어 전달된다.
사용방법
<c:catch var="변수명">
실행 코드
</c:catch>
'Web > JSP' 카테고리의 다른 글
DTO(Data Transfer Object) (0) | 2022.06.16 |
---|---|
MVC 패턴 (0) | 2022.06.16 |
표현 언어(EL) 연산자 (0) | 2022.06.14 |
Redirect VS Forward 차이점 (0) | 2022.06.12 |
표현 언어(EL : Expression Language) (0) | 2022.05.16 |