• 티스토리 홈
  • 프로필사진
    chantleman
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
chantleman
  • 프로필사진
    chantleman
    • 분류 전체보기 (328)
      • 프로젝트 (1)
      • react (2)
      • 코딩테스트 (133)
        • lv0 (101)
        • lv1 (10)
        • lv2 (7)
        • lv3 (15)
      • 오류 (14)
      • 리눅스 (5)
      • 자바 (75)
        • spring (7)
      • js (35)
      • 오라클 (39)
        • PLSQL (3)
      • cs (5)
      • 도커 aws (3)
      • 단축키 (3)
      • 나만봐 (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • c태그
        2024년 09월 12일
        • chantleman
        • 작성자
        • 2024.09.12.:24

         

         

        JSP에서  java 코드를 쓸 때 <%  · · ·  %> 태그를 사용하는데 

        불편하기도 하고 가독성도 떨어지기 때문에 JSTL을 사용합니다.

         

         

        C Tag는 JSTL의 태그 라이브러리중 하나로 변수 지정, 제어문, 페이징 처리 등을 할 수 있는 기능을 제공합니다.

        C Tag를 사용하기 전에 먼저 JSP 상단에 아래 코드를 기입해 선언해줍니다.

          <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

         

         

        종류에는 <c:choose>, <c:forEach>, <c:if>, <c:set>, <c:out>, <c:forTokens>, <c:url>, <c:redirect>가 있습니다.

         


         

        <c:choose>

        - 분기처리할 때 주로 쓰이는 태그

        - if, else문과 같이 when 조건에 해당되면 when의 안의 로직을 실행하고 when에 해당되는 조건이 없다면 otherwise안의 로직을 실행

         

        로그인했을 때 프로필 사진 보이게 하기, 로그인 버튼이 로그아웃 버튼으로 바뀌기, 내가 쓴 글에만 수정, 삭제 버튼 보이게 하기 등등의 기능을 구현할 때에도 사용됩니다.

            <c:choose>
                <c:when test="조건">
                    실행문
                </c:when>
                <c:otherwise>
                    실행문
                </c:otherwise>
            </c:choose>

         

         


        <c:forEach>

        - 반복문 for와 동일한 기능의 태그

        - items 속성은 반복할 값들이 있는 배열이나 리스트, var속성은 forEach문 안에서 반복될 변수명

         

            <c:forEach items="배열 or 리스트" var="변수명" varStatus="상태용 변수">
                ${변수명}
            </c:forEach>

         

        이때, 상태용 변수를 status라고 지정했다면 아래와 같이 활용할 수 있습니다.

        • ${status.current} 현재 for문의 해당하는 번호
        • ${status.index} 0부터의 순서
        • ${status.count} 1부터의 순서
        • ${status.first} 첫번째인지 여부
        • ${status.last} 마지막인지 여부
        • ${status.begin} for문의 시작 번호
        • ${status.end} for문의 끝 번호
        • ${status.step} for문의 증가값

         

            <c:forEach items="${fruits}" var="fruit" varStatus="status">
                <span> ${status.index} : ${fruit} </span>
            </c:forEach>

        인덱스값 나타내기

         

        	<c:forEach var="gen" items="${genreList}" varStatus="status">
                   ${gen.genName}
                   <c:if test="${!status.last}">, </c:if>
        	</c:forEach>

         

        리스트 안의 요소들 나열할 때 콤마로 구분하기 (마지막은 콤마 제외)


        <c:if>

        - 조건문 설정하는 태그 (else 조건이 존재하지 않음)

        - test 속성에 조건을 선언

        	<c:if test = "판별할 조건" var = "변수명" scope="조건의 범위"/>

         

            <c:set var="result" value="Y"/>
            <c:if test="${result eq 'Y'}">
                <c:out value="${result}"></c:out> 
            </c:if>

         

        == : eq(equal)
        != : ne(not equal)
        <  : lt(less than)
        >  : gt(greater than)
        <= : le(less equal)
        >= : ge(greater equal)

        <c:set>

        - 변수 선언할 때 초기값 설정하는 태그

          <c:set var="변수명" value="초기값" scope="변수의 범위"/>

         

         

            <c:set var="result" value="Y"></c:set>
            ${result}

         

         

        아래 코드는 contextPath 설정할 때

          <c:set var="contextPath" value="${pageContext.request.contextPath }"></c:set>

         

         


        <c:out>

        - 데이터를 출력하기 위한 태그

        	<c:out value="출력할 데이터" default="출력할 데이터 기본값"/>

         

         

            <c:set var="result" value="Y"/>
            <c:if test"${result eq 'Y'}">
                <c:out value="${result}"></c:out>
            </c:if>

         

        c:set처럼 c:out을 사용하지 않아도 데이터를 출력할 수 있는데 굳이 c:out을 사용하는 이유는?

        웹 사이트에 스크립트 코드를 주입하는 공격을 대비하기 위해 html 코드를 해석하지 못하게 하기 위해

         

         


        <c:remove>

        - 변수 삭제하기 위한 태그

         

        	<c:set var="travel" value="부산"/>
        	<h3>전: ${travel }</h3>
        	<p>travel 변수값을 제거해보자 </p>
        	<c:remove var="travel"/>
        	<h3>후: ${travel }</h3>
        728x90

        '자바' 카테고리의 다른 글

        eclipse svn 연동  (0) 2024.09.24
        eclipse, github 연동  (0) 2024.09.13
        where 1=1  (1) 2024.09.08
        getAttribute(), getParameter(), VO  (1) 2024.09.08
        servlet filter  (0) 2024.09.04
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바