ABOUT ME

기술 블로그

Today
Yesterday
Total
  • JSP 표준 태그 라이브러리(JSTL)
    TEMPLATE/JSP 2023. 5. 2. 19:00
    1. JSTL이란?
      1. JSTL(JSP Standard Tag Library)은 JSP에서 빈번하게 사용되는 조건문, 반복문 등을 처리해주는 태그를 모아 표준으로 만들어 놓은 라이브러리
      2. JSTL을 사용하면 스크립틀릿 없이 태그만으로 작성할 수 있기 때문에 코드가 간결해지고 일기 편해짐
      3. JSTL에서 제공하는 태그 종류
        종류 기능 접두어 URI
        Core 태그 변수 선언, 조건문/반복문, URL 처리 c http://java.sun.com/jsp/jstl/core
        Formatting 태그 숫자, 날짜, 시간 포맷 지정 fmt http://java.sun.com/jsp/jstl/fmt
        XML 태그 XML 파싱 x http://java.sun.com/jsp/jstl/xml
        Function 태그 컬렉션, 문자열 처리 fn http://java.sun.com/jsp/jstl/functions
        SQL 태그 데이터베이스 연결 및 쿼리 실행 sql http://java.sun.com/jsp/jstl/sql
      4. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core %>
    2. 코어(Core) 태그
      1. 코어 태그는 프로그래밍 언어에서 가장 기본이 되는 변수 선언, 조건문, 반복문 등을 대체하는 태그를 제공함
      2. 코어 태그의 종류
        태그명 기능
        set EL에서 사용할 변수를 설정합니다.
        remove 설정한 변수를 제거합니다.
        if 단일 조건문을 주로 처리합니다. else문이 없다는 단점이 있습니다.
        choose 다중 조건을 처리할 때 사용합니다. 하위에 when-otherwise 태그가 있습니다.
        forEach 반복문을 처리할 때 사용합니다. 일반 for문과 향산된 for문 두 가지 형태로 사용할 수 있습니다.
        fortokens 구분자로 분리된 각각의 토큰을 처리할 때 사용합니다. StringTokenizer 클래스와 동일한 기능입니다.
        import 외부 페이지를 삽일할 때 사용합니다.
        redirect 지정한 경로로 이동합니다.
        url 경로를 설정할 때 사용합니다.
        out 내용을 출력할 때 사용합니다.
        catch 예외 처리에 사용합니다.
        1. <c:set> 태그
          1. EL에서 사용할 변수나 자바빈즈를 생성할 때 사용
          2. 동일한 변수로 선언 할 경우 마지막에 선언한 변수의 값으로 덮어진다.
            <c:set var="변수명" value="값" scope="영역"/>
            <c:set var="변수명" scope="영역">value 속성에 들어갈 값</c:set>
          3. <c:set> 태그의 속성
            속성명 기능
            var 변수명을 설정 합니다.
            value 변수에 할당할 값입니다.
            scope 변수를 생성할 영역을 지정합니다. page가 기본값
            target 자바빈즈를 설정합니다.
            property 자바빈즈의 속성, 즉 멤버 변수의 값을 지정합니다
        2. <c:remove> 태그
          1. <c:set> 태그로 설정한 변수를 제거할 때 사용함
            <c:remove var="변수명" scope="영역"/>
          2. 태그의 속성
            속성명 기능
            var 삭제할 변수명을 설정합니다
            scope 삭제할 변수의 영역을 지정합니다
            지정하지 않으면 모든 영역의 변수가 삭제됩니다
        3. <c:if> 태그
          1. 자바의 if와 동일하게 제어 구문을 작성할 때 사용
          2. else가 별도로 없기 때문에 일련의 여러 조건을 나열하는 형태로 작성하기에는 어려움
          3. 형식
            <c:if test="조건" var="변수명" scope="영역">조건이 true일 때 출력할 문장</c:if>
          4. 태그의 속성
            속성명 기능
            test if문에서 사용할 조건을 지정합니다
            var 조건의 결과를 저장할 변수명을 지정합니다.
            scope 변수가 저장될 영역을 지정합니다
          5. 주의사항
            1. EL이 아닌 일반 값이 오면 무조건 false를 반환합니다.
              하지만 일반 값으로 true가 사용되는 것은 예외 입니다.
            2. 문자열 'tRuE'는 대소문자에 상관없이 항상 true를 반환합니다.
            3. test속성에 EL을 통해 조건식을 쓸 때 공백이 삽입되면 무조건 false를 반환합니다.
        4. <c:choose>, <c:when>, <c:otherwise> 태그
          1. <c:choose> 태그는 다중 조건을 통해 판단해야 할 때 사용함
          2. 하위 태그로 <c:when>, <c:otherwise> 태그를 함께 사용함
          3. 형식
            <c:choose>
              <c:when test="조건1">조건1을 만족하는 경우</c:when>
              <c:when test="조건2">조건2를 만족하는 경우</c:when>
              <c:otherwise>아무 조건도 만족하지 않는 경우</c:otherwise>
            </c:choose>
        5. <c:forEach> 태그
          1. 반복 태그
          2. 형태
            1. 일반 for문 형태
              <c:forEach var="변수명" begin="시작값" end="마지막값" step="증가값"/>
            2. 향상된 for문 형태
              <c:forEach var="변수명" items="컬렉션 혹은 배열"/>
          3. 태그 속성
            1. <c:forEach> 태그의 속성
              속성명 기능
              var 변수명을 지정합니다.
              items 반복을 위한 객체를 지정합니다.
              배열, 컬렉션 등을 지정할 수 있습니다
              begin 시작값을 지정합니다
              end 종료값을 지정합니다.
              step 증가할 값을 지정합니다.
              varStatus 루프의 현재 상태를 알려주는 변수의 이름을 지정합니다.
            2. varStatus 속성을 통해 얻을 수 있는 정보
              속성명 일반 for문 향상된 for문
              current var에 지정한 현재 루프의 변수값 반환 현재 루프의 실제 요소를 반환
              index var에 지정한 현재 루프의 변수값 반환 현재 루프의 인덱스를 표시(0~마지막)
              count 실제 반복 횟수(1~마지막) 일반 for문과 동일함
              first 루프의 처음일 때 true 반환 일반 for문과 동일함
              last 루프의 마지막일 때 true 반환 일반 for문과 동일함
        6. <c:forTokens> 태그
          1. 자바의 StringTokenizer 클래스 처럼 구분자를 기준으로 문자열을 나눠 토큰의 개수만큼 반복해줍니다.
          2. 형식
            <c:forTokens items="문자열" delims="문자열 구분자" var="변수명"/>
        7. <c:import> 태그
          1. <c:import> 태그는 <jsp:include> 액션 태그와 같이 외부 파일을 현재 위치에 삽입할 때 사용합니다.
          2. 또한 애플리케이션에 속하지 않은 외부의 페이지도 삽입할 수 있습니다.
          3. 형식
            1. <c:import url="페이지 경로 혹은 URL" scope="영역"/>
            2. <c:import url="페이지 경로 혹은 URL" var="변수명" scope="영역"/>
              ${ 변수명 }
            3. <c:import url="페이지 경로 혹은 URL?매개변수1=값1">
                <c:param name="매개변수2" value="값2"/>
              </c:import>
        8. <c:redirect> 태그
          1. <c:redirect> 태그는 response 내장 객체의 sendRedirect()와 동일하게 페이지 이동을 처리합니다.
          2. 형식
            <c:redirect url="이동할 경로 및 URL"/>
        9. <c:url> 태그
          1. <c:url> 태그는 지정한 경로와 매개변수를 이용해서 컨텍스트 루트를 포함한 URL을 생성합니다.
            생성된 URL은 <a> 태그의 href 속성이나, <form> 태그의 action 속성에 사용할 수 있습니다.
          2. 형식
            1. <c:url value="설정한 경로" scope="영역"/>
            2. <c:url value="설정한 경로" scope="영역" var="변수명"/>
              ${ 변수명 }
        10. <c:out> 태그
          1. <c:out> 태그는 JSP의 표현식처럼 변수를 출력할 때 사용합니다.
            표현식과 다른 점은 출력할 변수가 null일 때 default 속성에 지정한 기본값이 출력 된다.
            또한 escapeXml 속성을 true로 설정하면 HTML태그를 자유롭게 표현할 수 있다.
          2. 형식
            <c:out value="출력할 변수" default="기본값" escapeXml="특수문자 처리 유무"/>
          3. 속성
            속성명 기능
            value 출력할 변수를 지정합니다.
            escapeXml 특수 문자를 변환할지 여부를 결정합니다.
            기본값은 true로 특수 기호를 그대로 출력합니다.
            default value 속성에 값을 지정하지 않을 경우 출력할 값을 지정합니다.
        11. <c:catch> 태그
          1. <c:catch> 태그는 발생한 예외를 잡아 처리하는 역활을 합니다.
            예외가 발생하면 지정한 변수에 에러 메시지가 저장되어 전달됩니다.
          2. 형식
            <c:catch var="변수명">실행 코드</c:catch>
      3. 국제화(Formatting) 태그
        1. JSTL의 Formatting 태그는 국제화 태그로, 국가별로 다양한 언어, 날짜 , 시간, 숫자 형식을 설정 할 때 사용됩니다.
        2. 지시어
          <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
        3. 태그의 종류
          분류 태그명 기능
          숫자 포맷 formatNumber 숫자 포맷을 설정합니다.
          parseNumber 문자열을 숫자 포맷으로 변환합니다.
          날짜 포맷 formatDate 날짜나 시간의 포맷을 설정합니다.
          parseDate 문자열을 날짜 포맷으로 변환합니다.
          타임존 설정 setTimeZone 시간대 설정 정보를 변수에 저장합니다.
          timeZone 시간대를 설정합니다.
          로케일 설정 setLocale 통화 기호나 시간대를 설정한 지역에 맞게 표시합니다.
          requestEncoding 요청 매개변수의 문자열을 설정합니다.
        4. 숫자 포맷팅 및 파싱
          1. <fmt:formatNumber> 태그의 사용형식
            <fmt:formatNumber value="출력할 숫자" type="출력 양식" var="변수 설정"
              groupingUsed="구분 기호 사용 여부" pattern="숫자 패턴" scope="영역"/>
          2. <fmt:formatNumber> 속성
            속성명 기능
            value 출력할 숫자를 설정합니다.
            type 출력 양식을 설정합니다.
            percent(퍼센트), currency(통화), number(일반 숫자, 기본값) 등을 지원합니다.
            var 출력할 숫자를 변수에 저장합니다.
            해당 속성 사용 시 즉시 출력되지 않고, 원하는 위치에 출력할 수 있습니다.
            groupingUsed 세 자리마다 콤마를 출력할지 여부를 결정합니다.
            기본값은 true 입니다.
            pattern 출력할 숫자의 양식을 패턴으로 지정합니다.
            scope 변수를 저장할 영역을 지정합니다.
          3. <fmt:parseNumber> 태그의 사용 형식과 지원 속성
            <fmt:parseNumber value="파싱할 문자열" type="출력 양식" var="변수 설정"
              integerOnly="정수만 파싱" pattern="패턴" scope="영역"/>
            속성명 기능
            value 변환할 문자열을 설정합니다.
            type 문자열의 타입을 설정합니다.
            기본값은 number(숫자) 입니다.
            var 출력할 값을 변수에 저장합니다.
            pattern 문자열의 양식을 패턴으로 지정합니다.
            scope 변수를 저장할 영역을 지정합니다.
            integerOnly 정수 부분만 표시할지 여부를 결정합니다.
            기본값은 false입니다.
        5. 날짜 포맷 및 타임존 - <fmt:formatDate>, <fmt:timeZone>
          1. <fmt:formatDate> 태그는 날짜와 시간 포맷을 지정하는 태그, 사용 형식과 지원 속성
            <fmt:formatDate value="출력할 날짜" type="출력 양식" var="변수 설정"
               dateStyle="날짜 스타일" timeStyle="시간 스타일" pattern="날짜 패턴" scope="영역"/>
            속성명 기능
            value 출력할 값을 설정합니다.
            type 출력 시 날짜(date), 시간(time), 날짜 및 시간(both) 세 가지 중 선택 할 수 있습니다.
            var 출력할 숫자를 변수에 저장합니다.
            dateStyle 날짜 스타일을 지정합니다.
            default, short, medium, long, full 중 선택할 수 있습니다.
            timeStyle 시간 스타일을 지정합니다.
            default, short, medium, long, full 중 선택할 수 있습니다.
            pattern 출력할 날짜 및 시간의 양식을 패턴으로 직접 지정합니다.
            scope 변수를 저장할 영역을 지정합니다.
          2. <fmt:timeZone> 태그는 출력할 시간의 시간대를 설정할 수 있다
          3. <fmt:formatDate> 태그를 <fmt:timezone>태그의 하위에 사용하면, 설정한 시간대에 따라 다른 시간을 출력
        6. 로케일 설정
          1. <fmt:setLocale> 태그는 국가별로 다른 통화 기호나 날짜를 표현할 때 사용
      4. XML 태그
        1. xml 태그는 XML 문서를 처리하기 위한 것으로, XML 파싱 및 출력, 흐름 제어 등의 기능을 제공
        2. 지시어
          <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
        3. 태그의 종류
          태그명 기능
          out select 속성에 지정한 XPath 표현식의 결과를 출력합니다.
          parse XML을 파싱할 때 사용합니다.
          forEach select 속성에 지정한 반복되는 노드를 파싱합니다.
          if select 속성에 지정한 XPath 표현식의 값을 하나의 조건으로 결정합니다.
          choose select 속성에 지정한 XPath 표현식의 값을 다중 조건으로 결정합니다.
          하위에 when, otherwise 태그를 사용합니다.

    'TEMPLATE > JSP' 카테고리의 다른 글

    표현 언어(Expression Language)  (0) 2023.05.02
    액션 태그(Action Tag)  (0) 2023.05.02
    JSP 내장 객체  (0) 2023.05.02
    page 지시어  (0) 2023.05.02
    JSP 기본 정보  (0) 2023.05.02

    댓글