1. JSTL 이란
1. JSP 표준라이브러리(JSP Standard Tag Library) 이다.
2. JSP에서 사주 사용하는 기능(반복과 조건, 데이타 관리 포맷, XML 조작, 데이타베이스 액세스)을 구현하는 커스텀 태그 라이브러리 모음이다.
3. 시간, 날짜, 숫자의 포맷이나 문자열 가공등의 처리에서 비즈니스로직과 프리젠테이션 로직을 분리할 수 있게 해준다.
4. JSTL은 EL(Expression Language)를 사용하여 표현한다.
2. JSTL 라이브러리
라이브러리 |
기능 |
접두어 |
코어 |
일반 프로그램 언어에서 제공하는 변수선언, 조건/제어/반복문등의 기능을 제공한다. |
c |
포맷팅 |
숫자,날짜,시간을 포맷팅 하는 기능과 국제화, 다국어 지원 기능을 제공한다. |
fmt |
함수 |
문자열을 처리하는 함수를 제공한다. |
fn |
데이터베이스 |
데이터베이스의 데이터를 입력/수정/삭제/조회하는 기능을 제공한다. |
sql |
XML처리 |
XML 문서를 처리할 때 필요한 기능을 제공한다. |
x |
3. JSTL 문법
1. Core
명령어 |
내용 |
예제 |
|||
c:url |
url 호출 |
|
|||
c:out |
객체를 화면에 출력 |
|
|||
c:set |
저장영역에 객체를 저장 |
|
|||
c:forEach |
반복문 제어 |
|
|||
c:remove |
저장영역에서 객체를 삭제 |
|
|||
c:if |
조건문 제어 |
|
|||
c:choose c:when c:otherwise |
복합조건문 제어 |
|
|||
c:import! |
다른 jsp화면을 현재 화면에 출력 |
|
|||
c:redirect |
경로 이동 |
|
2. 연산자
연산자 |
예제 |
결과내용 |
== eq |
${1 == 1} ${1 eq 1} |
true |
!= ne |
${1 != 1} ${1 ne 1} |
false |
< lt |
${1 < 10} ${1 lt 10} |
true |
> gt |
${1 > 10} ${1 gt 10} |
false |
<= le |
${1 <= 1} ${1 le 1} |
true |
>= ge |
${1>=0} ${1 ge 0} |
false |
&& and |
${true && false} ${true and false} |
false |
|| or |
${true || false} ${true or false} |
true |
! not |
${!true} ${not true} |
false |
empty | ${empty name} | name이 null이거나 빈 문자열이면 true |
not empty | ${not empty name} | name이 null도 아니고 빈 문자열도 아니면 true |
4. status 상태 속성 제어
1 2 3 4 5 6 7 8 9 10 11 12 13 | < c:foreach items=”${RESULT}” var=”RESULT” varStatus=”status”> ${status.current}<br/> <!– 현재 아이템 –> ${status.index}<br/> <!– 0부터의 순서 –> ${status.count}<br/> <!– 1부터의 순서 –> ${status.first}<br/> <!– 현재 루프가 처음인지 반환 –> ${status.last}<br/> <!– 현재 루프가 마지막인지 반환 –> ${status.begin}<br/> <!– 시작값 –> ${status.end}<br/> <!– 끝값 –> ${status.step}<br/> <!– 증가값 –> < /c:forEach> | cs |
5. JSTL for문
1. 인덱스로 접근
1 2 3 4 5 6 | <c:forEach var="i" begin="1" end="5" step="1" varStatus="status"> 번호 : ${status.count} 이름 : ${item[i].name} 직업 : ${item[i].job} 급여 : ${item[i].salary} </c:forEach> | cs |
2. begin과 end로 접근
1 2 3 4 5 6 | <c:forEach var="item" items="${list}" begin=0 end=5 step=1 varStatus="status"> 번호 : ${status.count} 이름 : ${item.name} 직업 : ${item.job} 급여 : ${item.salary} </c:forEach> | cs |
3. 일반적인 접근
1 2 3 4 5 6 | <c:forEach var="item" items="${list}" varStatus="status"> 번호 : ${status.count} 이름 : ${item.name} 직업 : ${item.job} 급여 : ${item.salary} </c:forEach> | cs |
4. JSTL break문 구현
1 2 3 4 5 6 7 8 9 10 11 12 | <c:set var="doneLoop" value="false" /> <c:forEach var="entity" items="${_STORE}" varStatus="status"> <c:if test="${status.count % 6 eq 1}"> <c:set var="doneLoop" value="false" /> </c:if> <c:if test="${not doneLoop}"> <span><input type="checkbox" id="store_id" name="store_id" value="<c:out value="${entity.STORE_ID}"/>" <c:out value="${entity.USE_YN}"/>><c:out value="${entity.STORE_NM}"/></span> <c:if test="${status.count % 6 eq 0}"> <c:set var="doneLoop" value="true"/> </c:if> </c:if> </c:forEach> | cs |
'전체 > Thymeleaf, JSTL' 카테고리의 다른 글
Thymeleaf 문법 정리 (3) | 2018.10.08 |
---|