기본 문법
기본 문법
사용 조건
- <%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c”%>을 jsp 파일 최상단에 작성
변수 출력
- 기본 형식
- value로 명시된 값이 출력된다.
<c:out value="HongGilDong"/>- 변수 출력
- value에 넣은 변수명으로 된 값이 존재하면 해당 값을 출력한다.
- value의 값이 null인 경우 default로 명시된 값을 출력한다.
<c:out value="${name}" default="HongGilDong" />- 태그 처리
- escapeXml 속성 값
- true (default) : xml 및 html 태그를 문자열로 취급한다.
- false : xml 및 html 태그를 실제 동작하게 한다.
- escapeXml 속성 값
<c:out value="<b>강조할 문자열</b>" escapeXml="false" />변수 설정
- 기본 형식
- var로 명시된 이름에 value로 지정한 값이 저장된다.
<c:set var="name" value="HongGilDong" />- 값 변경
- 기존에 선언된 변수명으로 동일하게 선언을 하면 마지막에 선언된 변수값을 저장된다.
<c:set var="name" value="HongGilDong" />
<c:set var="name" value="JeonWooChi" />- scope 설정
- 정의
- 변수(속성)의 공유 범위(유효기간)
- 종류
- request
- 클라이언트가 서버에 요청하고 응답할때 까지의 생명주기 동안 객체들을 저장하고 유지한다.
- session
- 다중 페이지 요청시 사용자를 구별하기 위해 세션을 사용하는데 그 세션이 유지되는 동안 객체들을 저장하고 유지한다.
- application
- 어플리케이션의 생명주기와 같이 한다.
- 모든 클라이언트와 어플리케이션에서 접근이 가능하다.
- page (default)
- JSP 페이지와 같은 생명주기를 가진다.
- JSP 페이지가 생성될 때 자동으로 생성되며 다른페이지로 이동하면 사라진다
- request
- 정의
<c:set var="name" value="HongGilDong" scope="request" />변수 제거
- 기본 형식
<c:remove var="name" />- scope 설정
- scope를 지정하지 않을경우 동일한 이름의 변수를 모두 삭제한다.
<c:remove var="name" scope="page" />연산자
- 비교 연산자
- eq : == 연산자와 동일한 역할
- ne : != 연산자와 동일한 역할
- lt : < 연산자와 동일한 역할
- gt : > 연산자와 동일한 역할
- le : <= 연산자와 동일한 역할
- ge : >= 연산자와 동일한 역할
<c:if test="${member eq null}">...</c:if> <!-- null 비교 -->
<c:if test="${money ne 0}">...</c:if> <!-- 숫자 비교 -->
<c:if test="${name eq 'lion'}">...</c:if> <!-- 문자열 비교 -->
- null check
- empty : 공백 체크
<c:if test="${empty wallet}">...</c:if>
- 조건 연산자
- and : && 연산자와 동일한 역할
- or : || 연산자와 동일한 역할
<c:if test="${a eq 1 and b eq 2}">...</c:if>
<c:if test="${c eq 1 or d eq 2}">...</c:if>
- 부정 연산자
- not : ! 연산자와 동일한 역할
<c:if test="${not empty wallet}">...</c:if>
조건문
- if
- test 속성에 작성한 명제가 참일 경우 내부의 결과물을 노출한다.
- scope 속성 사용 가능
<c:if test="${1 == 1}">
<p>정답!<p>
</c:if>
- switch
- choose : 감싸기용
- when : 위에서 작성된 when대로 차례대로 태그의 test 속성한 명제가 참일 경우 해당 태그 내부의 결과물을 노출한다.
- otherwise : 작성된 when에서 참인 경우가 없는 경우 해당 태그 내부의 결과물을 노출한다.
<c:set var="temp" value="${7}"/>
<c:choose>
<c:when test="${temp == 2}">
${temp}는 2와 같다.
</c:when>
<c:when test="${temp == 3}">
${temp}는 2와 같지 않고 3과 같다.
</c:when>
<c:otherwise>
${temp}는 2도 아니고 3도 아니다.
</c:otherwise>
</c:choose>
반복문
- foreach
- 목록을 입력 받아서 목록의 갯수만큼 반복하는 반복문이다.
- foreach 속성
- var : 사용할 변수명, 필수
- items : Collerction 객체, 필수
- begin : 반복 시작 index, default 0
- end : 반복 종료 index, default 마지막 index
- step : 반복할 때마다 건너 뛸 index 개수
- varStatus : 반복 상태를 알 수 있는 변수명
- index : int items에 정의한 항목을 가리키는 index 번호이다. 0부터 시작한다.
- count : int 현재 몇번째 반복인지 나타낸다. 1부터 시작한다.
- first : boolean 현재 반복이 첫번째인지 여부
- last : boolean 현재 반복이 마지막인지 여부
<c:forEach var="item" items="${items}" begin="0" end="10" step="1" varStatus="status">
<p>번호 : ${status.index}</p>
<p>사번 : ${item.empNo}</p>
<p>사원명 : ${item.name}</p>
<p>부서명 : ${item.deptNm}</p>
</c:forEach>- forTokens
- 문자열을 특정기호로 잘라내어 반복하는 반복문
- forTokens 속성
- delims : 문자열을 분리를 위한 특정 기호
<ul>
<c:forTokens var="item" items="a,b,c" delims=",">
<li>알파벳 : ${item}</li>
</c:forTokens>
</ul>URL 생성
페이지 첨부
- <c:import />
- url 속성에 명시한 주소의 페이지 컨텐츠를 var 속성에 명시한 변수명에 저장한다.
파라미터 추가
- <c:param />
- url, redirect, import 태그의 내부에서 쓰는 서브 태그
- name 속성에 파라미터명을 명시한다.
- value 속성에 값을 명시한다.
예외 처리
- 기본 형식
- 예외 발생 시 var에서 선언한 변수명에 에러 내용이 저장된다.
<c:catch var="변수명">
예외가 발생할 수 있는 코드
</c:catch> 이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.