○ Core Tag 라이브러리
코어 태그는 JSTL에서 가장 기본이 되며 가장 많이 사용되는 태그로
변수 지원, 제어 흐름, URL 관리, 예외 처리, 출력을 위한 태그로 구성된다
■ 변수 지원 속성
- remove : 이미 설정한 변수를 삭제한다
- set : JSP에서 사용할 변수를 선언한다
■ 제어 흐름 속성
- choose : 다중 조건을 사용할 때 사용한다
태그 <when>과 <otherwise>로 구성되어있는 여러 개의 조건 속에서 하나만 선정하여 처리한다 - when : <choose> 태그의 서브 태그로 해당하는 조건이 true이면 포함된 내용을 실행한다
- otherwise : <choose> 태그의 서브 태그로 <when>에서 조건이 모두 false이면 <otherwise>가 실행된다
- forEach : for문과 같은 역할을 하며 고정된 횟수동안 태그에 포함된 내용을 반복한다
- forTokens : 자바의 StringTokenizer 클래스와 같은 역할을 하며 제공된 델리미터(delims)로 분리된 토큰을 반복한다
- if : 조건을 테스트하는데 사용되며 조건이 true일 때만 해당되는 내용을 실행한다(else 역할을 하는 것이 없다)
■ URL 관리 속성
- import : URL을 사용하여 다른 페이지의 결과를 삽입한다
- param : 태그 <import>, <redirect>, <url>의 서브 태그로 URL에 매개 변수를 추가한다
- redirect : 지정한 경로로 이동하게 한다
- url : URL을 작성한다
■ 기타
- catch : 예외 처리를 한다
- out : 출력 처리를 한다
△ <c:set> 태그 속성
- var : 값을 지정할 EL 변수의 이름이다
- target : 값이 저장되는 자바 빈즈 객체이거나 또는 map. 자바 빈즈의 경우 setter인 property에 의해 값 지정한다
(프로퍼티 값을 설정할 대상 객체. 표현식(<%= %>)이나 EL 변수(${varName})를 지정한다) - value : 변수 또는 객체에 저장할 값이다
- property : target 객체의 property 이름이다
- scope : 변수가 효력을 발휘하는 영역으로 page, request, session, application 중의 하나를 지정한다
target과 property
△ <c:remove> 태그 속성
- var : 값을 삭제할 변수의 이름이다
- scope : var에 입력한 변수를 삭제할 영역을 지정한다. 영역을 지정하지 않으면 모든 영역에서 해당 변수들이 삭제된다
△ <c:choose> 태그 속성
<c:choose> 태그는 조건에 따른 여러 곳으로 분기 가능하고, 조건이 맞은 것이 없을 경우 기본 분기를 제공할 수 있다
- test : 평가할 조건을 적는다
<c:choose>
<c:when test="${name eq '토니 스타크'}"> ... </c:when>
<c:when test="${name eq 'Tony Stark'}"> ... </c:when>
<c:otherwise> ... </c:otherwise>
</c:choose>
위 코드는 이름이 '토니 스타크', "Tony Stark"일 경우 분기하고 그 외의 경우에는 <c:otherwise>로 분기한다
△ <c:if> 태그 속성
test 속성 내의 EL 연산자의 결과가 true이면 실행된다
- test : 평가할 조건을 적는다
- var : 조건 결과를 저장할 변수이다
- scope : 조건 결과를 저장할 변수의 범위이다
<c:set var="name" value="Tony"/>
<c:if test="${name eq 'Tony'}">
<c:out value="name"/>
</c:if>
*논리 연산자와 비교 연산자
- and(&&) : 모두 참일 때 참이 된다
-<c:if test="${a > b and c < d}">
-<c:if test="${a > b && c < d}"> - or(||) : 둘 중 하나라도 참이면 참이 된다
-<c:if test="${a > b or c < d}">
-<c:if test="${a > b || c < d}"> - not(!) : 논리를 반전한다
-<c:if test="${not a == ''}">
-<c:if test="${!a == ''}"> - ne(!=) : 비교하는 문자열 또는 숫자가 다르면 참이다(Not Equals)
-<c:if test="${name != '토니'}">
-<c:if test="${name ne '토니'}">
-<c:if test="${name != 8}">
-<c:if test="${name ne 8}"> - eq(==) : 비교하는 문자열 또는 숫자가 같으면 참이다(null 또는 빈 문자열인지도 비교할 수 있다)
-<c:if test="${name == '토니'}">
-<c:if test="${name eq '토니'}">
-<c:if test="${name == 8}">
-<c:if test="${name eq 8}"> - empty : List 또는 배열이 비어있거나, 문자열이 null 또는 빈 문자열이면 true를 반환한다(숫자 0은 eq를 통해 비교한다)
-<c:if test="${empty '토니'}">
-<c:if test="${empty name}"> - not empty : List 또는 배열이 비어있지 않거나, 문자열이 null 또는 빈 문자열이 아니라면 true를 반환한다
-<c:if test="${not empty '토니'}">
-<c:if test="${not empty name}">
△ <c:forEach> 태그 속성
List, 배열 요소를 순서대로 반복해서 처리할 수 있는 태그이다
- var : 사용할 변수의 이름이다
- items : Collection 객체(ArrayList, List)
- varStatus : 변수명을 지정한 후 반복문을 실행한다면 현재 forEach의 상태를 알 수 있다
-변수명.index : 0부터 시작하는 인덱스이다
-변수명.count : 현재 몇번째 루프인지의 값이다. 1부터 시작함
-변수명.current : 현재 아이템이다. var 속성의 값과 같다
-변수명.first : 현재가 첫번째 루프이면 true를 반환한다
-변수명.last : 현재가 마지막 루프이면 true를 반환한다
-변수명.begin : begin 속성을 사용했을 경우 그 값이 출력된다
-변수명.end : end 속성을 사용했을 경우 그 값이 출력된다
-변수명.step : step 속성을 사용했을 경우 그 값이 출력된다 - begin : 시작 index를 의미한다
- end : 종료 index를 의미한다
- step : index의 이동량을 의미한다
△ <c:forTokens> 태그 속성
문자열을 분리자를 사용하여 분리해서 출력할 수 있다
- var : 사용할 변수의 이름이다
- items : List를 지정한다
- delims : 문자열을 분리할 기준 문자열을 기술한다
△ <c:import> 태그 속성
페이지를 호출할 때 사용한다
- var : 사용할 변수의 이름이다
- url : import할 페이지의 url을 기술한다
△ <c:param> 태그 속성
import 태그나 url 태그로 페이지를 포함하거나 이동할 때 넘겨주는 값을 지정한다
- name : 매개 변수의 이름을 나타낸다
- value : 매개 변수의 값을 나타낸다
△ <c:url> 태그 속성
URL에 자동으로 Context Path를 붙여주는 역할을 한다. 컨텍스트를 변경하더라도 URL을 수정할 필요가 없다
- value : URL 주소를 지정한다
△ <c:redirect> 태그 속성
response.sendRedirect()와 같이 URL을 지정해 특정 페이지로 리다이렉트 시키는 역할을 한다
- url : URL 주소를 지정한다
- context : 컨텍스트 경로를 지정한다. 컨텍스트 경로를 지정하게 되면 컨텍스트 경로/url 경로와 같은 형식으로 리다이렉트된다
△ <c:catch> 태그 속성
자바에서의 try ~ catch문과 같은 역할을 한다
- var : Exception 변수를 지정한다
△ <c:out> 태그 속성
- value : 출력되는 값을 기술한다
- escapeXml : 태그가 특수 XML 문자를 이스케이스해야 하는 경우 true를 반환한다
- default : 변수가 null일 때 기본으로 출력되는 값을 기술한다
'JSP' 카테고리의 다른 글
JSTL SQL Tag (0) | 2020.07.13 |
---|---|
JSTL Formatting Tag (0) | 2020.07.13 |
JSTL(JSP Standard Tag Library) (0) | 2020.07.10 |
Expression Language(표현 언어) (0) | 2020.07.09 |
Statement와 PreparedStatement (0) | 2020.07.08 |