본문 바로가기

JSP

JSTL Core Tag

○ 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