[JSP] JSTL
JSTL, JSP Standard Tag Library
JSP 페이지에서 조건문 처리, 반복문 처리등을 html tag 형태로 작성할 수 있게 도와줌
JSP 는 스크립트릿의 자바 코드와 HTML 태그가 섞여 있는 형태
JSTL 사용 방법
JSP 페이지에서 조건문 처리, 반복문 처리등을 html tag 형태로 작성할 수 있게 도와줌
JSP 는 스크립트릿의 자바 코드와 HTML 태그가 섞여 있는 형태
✔ http://tomcat.apache.org/download-taglibs.cgi 에서 jar 파일 다운 후 WEB-INF/lib/ 폴더에 복사
JSTL이 제공하는 태그의 종류
-
⭐ 코어 ⭐
하위 기능
- 변수지원
- 흐름 제어
- URL 처리
접두어, c
-
XML
하위 기능
- XML 코어
- 흐름 제어
- XML 변환
접두어, x
-
국제화
하위 기능
- 지역
- 메시지 형식
- 숫자 및 날짜 형식
접두어, fmt
-
데이터베이스
하위 기능
- SQL
접두어, sql
-
함수
하위 기능
- 콜렉션 처리
- String 처리
접두어, fn
코어 태그
- 변수지원
- set : JSP에서 사용될 변수를 설정
- remove : 설정한 변수를 제거
- 흐름제어
- if : 조건에 따라 내부 코드 수행
- choose : 다중 조건을 처리할 때 사용
- forEach : 콜렉션이나 Map의 각 항목을 처리할 때 사용
- forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용
- URL 처리
- import : URL을 사용하여 다른 자원의 결과 삽입
- redirect : 지정한 경로로 리다이렉트
- url : URL을 재작성
- 기타 태그
- catch : 예외처리
- out : JspWriter에 내용을 알맞게 처리한 후 출력
JSTL 사용
JSTL 사용하기 위해서는 library를 선언 해줘야 함
✔ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
1. 변수 지원 태그 - set, remove
변수 설정 : 지정한 영역에 변수 설정
⭐ 코어 ⭐
하위 기능
- 변수지원
- 흐름 제어
- URL 처리
접두어, c
XML
하위 기능
- XML 코어
- 흐름 제어
- XML 변환
접두어, x
국제화
하위 기능
- 지역
- 메시지 형식
- 숫자 및 날짜 형식
접두어, fmt
데이터베이스
하위 기능
- SQL
접두어, sql
함수
하위 기능
- 콜렉션 처리
- String 처리
접두어, fn
- set : JSP에서 사용될 변수를 설정
- remove : 설정한 변수를 제거
- if : 조건에 따라 내부 코드 수행
- choose : 다중 조건을 처리할 때 사용
- forEach : 콜렉션이나 Map의 각 항목을 처리할 때 사용
- forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용
- import : URL을 사용하여 다른 자원의 결과 삽입
- redirect : 지정한 경로로 리다이렉트
- url : URL을 재작성
- catch : 예외처리
- out : JspWriter에 내용을 알맞게 처리한 후 출력
JSTL 사용하기 위해서는 library를 선언 해줘야 함
✔ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
변수 설정 : 지정한 영역에 변수 설정
<c : set var="VarName" scope="session" value="someValues"/>
- var : EL에서 사용될 변수명
- scope : 변수값이 저장될 영역
- value : 변수값
변수 제거
<c: remove var="varName" scope="request"/>
2. 변수 지원 태그 - property, map
<c:set target="${some}" property="propertyName" value="anyValue"/>
- target :
<c:set>
으로 지정한 변수 객체 - property : property 이름
- value : 새로 지정할 property 값
- 객체가 자바빈일 경우 :some.setPropertyName(anyValue)
- 객체가 Map일 경우 :some.put(propertyName, anyValue)
3. 흐름 제어 태그 - if
<c:if test="조건">
</c:if>
⇒ test의 조건이 true일 때 처리, else 처리가 없음
4. 흐름 제어 태그 - choose
: else나 else if 가 없기 때문에 choose를 사용해줌
<c:choose>
<c:when test="조건1">
</c:when>
<c:when test="조건2">
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
- when은 여러개 사용가능
- 앞의 when 조건들 모두 맞지 않는다면 otherwise 실행
5. 흐름 제어 태그 - forEach
배열 및 collection 에 저장된 요소를 차례대로 처리
<c:forEach var="변수" items="아이템" [begin="시작번호"] [end="끝번호"]>
</c:forEach>
- var : EL에서 사용될 변수명
- items : 배열, list, Iterator, Enumeration, Map 등의 Collection
- begin : 인덱스 시작값
- end : 인덱스 끝 값
** item 이 Map 일 경우, 변수에 저장되는 객체는 Map.Entry → ${변수.key}
와 ${변수.value}
사용해서 <키, 값> 매핑에 접근 할 수 있음
6. 흐름 제어 태그 - import
지정한 URL에 연결하여 결과를 지정한 변수에 저장
<c:import url="URL" charEncoding="인코딩" var="변수명" scope="SCOPE">
<c:param name="이름" value="파라미터 값"/>
</c:param>
7. 흐름 제어 태그 - redirect
지정한 페이지로 리다이렉트함
<c:redirect url="리다이렉트할 URL">
<c: param name="파라미터이름" value="파라미터값"/>
→ 리다이렉트 할 페이지에 전달할 값이 있다면
<c:/redirect>
8. 기타 태그 - out
JspWriter에 데이터를 출력
<c:out value="value" escapeXml="{true/false}" default="defaultValue" />
-
value : JspWriter 에 출력할 값을 나타냄, 일반적으로 String 과 같은 문자열, 만약 value의 값이 java.io.Reader의 한 종류라면 out 태그는 Reader로 부터 데이터를읽어와 JspWriter에 값을 출력
-
escapeXml : 이 속성의 기본값은 true, 생략 가능
escapeXml 속성이 true 일 경우 반환되는 문자
<
:<
>
:>
&
:&
'
:'
"
:"
-
default : value 속성에서 지정 값이 존재하지 않을 경우 사용될 값을 지정
9. JSTL 내에서 JavaScript 함수 사용
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
library를 미리 선언해 줘야함- 코어태그의 set 을 이용하여 value에 JavaScript 코드를 작성해야 함
Author And Source
이 문제에 관하여([JSP] JSTL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yewon/JSP-JSTL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)