좌선
좌선의 개발일지
좌선
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • 개발환경 (3)
    • 알고리즘 (10)
      • 코딩테스트 (9)
      • 알고리즘 (1)
    • Java (54)
      • JPA (6)
      • Spring (5)
      • SpringBoot (15)
    • Network (2)
    • Database (1)
    • Git (2)
    • & (1)
    • Exception (3)
    • Study (0)
      • RealMySQL (0)
    • 회고 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 다트게임
  • 프로그래머스
  • 자바웹을다루는기술
  • 코드로배우는스프링웹프로젝트
  • AWS
  • 테스트주도개발
  • 머스테치
  • 스프링부트
  • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
  • Spring Data JPA
  • 쿼리로그
  • SpringBoot
  • 더티체킹
  • 스프링부트와 AWS로 혼자 구현하는 웹 서비스
  • TDD 실천법과 도구
  • dirtychecking
  • 자바 웹을 다루는 기술
  • programmers
  • Mustache
  • Spring

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
좌선

좌선의 개발일지

JSP Core 태그 라이브러리
Java

JSP Core 태그 라이브러리

2021. 3. 31. 00:06

Core 태그 라이브러리 기능


JSP에서는 변수 선언, 조건식, 반복문 기능은 자바 코드를 이용해서 구현 ->

코어 라이브러리를 사용하면 이런 자바 기능을 태그로 대체할 수 있다.

톰캣에서는 JSTL 라이브러리를 기본으로 제공하지 않고 외부 라이브러리에서 가져와 기능을 수행

따라서 JSP 페이지 상단에 다음과 같이 taglib 디렉티브 태그를 추가해야한다!

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

 

Core 태그 라이브러리 기능 정리

기능 태그 설명
변수 지원 <c:set> JSP 페이지에서 변수를 지정
<c:remove> 지정된 변수 제거
흐름 제어 <c:if> 조건문
<c:choose> switch문 사용
<c:when> , <c:otherwise> 서브 태그
<c:forEach> 반복문 사용
<c:forTokens> 구분자로 분리된 각각의 토큰 처리
URL 처리 <c:import> URL 이용 -> 다른 자원 JSP 페이지 추가
<c:redirect> response.sendRedirect()
<c:url> 요청 매개변수로부터 URL 생성
기타 태그 <c:catch> 예외 처리에 사용
<c:out> JspWriter에 내용 처리 후 출력

 

<c:set>

변수 선언 형식

<c:set var="변수이름" value="변수값" [scope="scope 속성 중 하나"]/>

변수 스코프 - page, request, session, application

 

실습

<c:set var="id" value="hong" scope="page"/>
<c:set var="pwd" value="1234" scope="page"/>
<c:set var="name" value="${'홍길동' }" scope="page"/>
<c:set var="age" value="${22 }" scope="page"/>
<c:set var="height" value="${177 }" scope="page"/>

<c:set> 태그를 이용해 변수를 선언한다.

value 속성에는 표현 언어를 사용해서 초기화할 수 있다

<td>${id }</td>
<td>${pwd }</td>
<td>${name }</td>
<td>${age }</td>
<td>${height }</td>

표현 언어로 변수에 바로 접근하여 값을 출력한다.

 

<c:remove>

사용 형식

<c: remove var="age"/>

변수 age를 삭제한다

 

<c:if>

사용 형식

<c:if test="${조건식}" var="변수이름" [scope="scope 속성 중 하나"]/>

실습

<body>
	<c:if test="${true }">
		<h1>항상 참입니다.</h1>
	</c:if>
	
	<c:if test="${11==11 }">
		<h1>두 값은 같습니다.</h1>
	</c:if> 
	
	<c:if test="${(id=='hong') && (name=='홍길동')}">
		<h1>아이디는 ${id }이고, 이름은 ${name }입니다.</h1>
	</c:if>
</body>

 

<c:choose>

사용 형식

<c:choose>
	<c:when test="조건식1">본문내용1</c:when>
    <c:when test="조건식2">본문내용2</c:when>
    ...
    <c:otherwise>본문내용</c:otherwise>
</c:choose>

첫번째 <c:when> 태그의 조건식1을 체크해서 참이면 본문내용1을 수행하고,

만약 거짓이면 다음 <c:when>의 조건식2를 체크해서 참이면 본문내용2 수행.

모든 조건이 거짓이면 otherwise 태그의 본문내용을 수행

 

실습

		<c:choose>
			<c:when test="${empty name }">
				<tr align="center">
					<td colspan=5> 이름을 입력하세요 !! </td>
				</tr>
			</c:when>
			<c:otherwise>
				<tr align="center">
					<td>${id }</td>
					<td>${pwd }</td>
					<td>${name }</td>
					<td>${age }</td>
					<td>${height }</td>
				</tr>
			</c:otherwise>
		</c:choose>

"${empty name}" 변수 name이 null이거나 빈 문자열인지 체크

name이 정상적이면 otherwise 태그의 본문내용을 수행

 

<c:forEach>

사용 형식

<c:forEach 	var="변수이름" items="반복할객체이름" begin="시작값" end="마지막값" 
			step="증가값" varStatus="반복상태변수이름">
            ...
</c:forEach>

*varStatus의 속성

속성 값 설명
index int index 번호. 0부터 시작
count int 몇 번째 반복인지. 1부터 시작
first boolean 첫 번째 반복인지 나타냄
last boolean 마지막 반복인지 나타냄

실습

	<c:forEach var="i" begin="1" end="10" step="1" varStatus="loop">
		i = ${i } &nbsp;&nbsp; 반복횟수: ${loop.count } <br>
	</c:forEach>
	<br>
	<c:forEach var="i" begin="1" end="10" step="2">
		5 * ${i } = ${5*i }<br>
	</c:forEach>
	<c:forEach var="data" items="${list }">
		${data }<br>	
	</c:forEach>

#1 반복 변수 i를 1부터 10까지 1씩 증가시키며 반복문 수행

#2 반복 변수 i를 1부터 10까지 2씩 증가시키며 반복문 수행

#3 ArrayList 같은 컬렉션 객체에 저장된 객체를 반복해서 반복 변수 data에 하나씩 가져와 처리

+)<c:forTokens>

	<c:set var="fruits" value="사과, 파인애플, 바나나, 망고, 귤" />
	<c:forTokens var="token" items="${fruits }" delims=",">
		${token }<br>
	</c:forTokens>

구분자(delims)를 이용해 문자열을 분리하여 출력

 

<c:redirect>

사용 형식

<c:redirect url="redirect할 URL">
	[ c:param name="매개변수이름" value="전달값" /> ]
</c:redirect>

실습

	<c:redirect url="member1.jsp">
		<c:param name="id" value="${'hong' }"/>
		<c:param name="pwd" value="${'1234' }"/>
		<c:param name="name" value="${'홍길동' }"/>
		<c:param name="email" value="${'hong@test.com' }"/>
	</c:redirect>

 

    'Java' 카테고리의 다른 글
    • JDBC 작업 순서
    • JDBC
    • JSP out 내장 객체 이용해 데이터 출력하기
    • JSP request (RequestDispatcher / forward / include) 내장 객체에 데이터 바인딩 실습
    좌선
    좌선
    얼렁뚱땅 천방지축 굴러가는 개발자의 삶

    티스토리툴바