본문 바로가기
JSP,Servlet,JSTL

JSTL 복습-02

by juneMiller 2021. 9. 30.

JSP Standard Tag Library 의 약자로 JSP 에서 사용하는 커스텀 태그 공통으로 사용하는 코드의 집합을 
사용하기 쉽게 태그화 하여 표준으로 제공한 것을 말함 

 

//선언 방식 
<%@ tagliburi=“http://java.sun.com/jsp/jstl/core"prefix="c"%>

//예시 
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<c:outvalue="${'WelcometojavaTpoint'}"/>

 

JSTL 라이브러리 등록 

https://www.javapoint.com/jsppages/src/jstl-1.2.jar

상위링크를통해jstl-1.2.jar파일설치후이클립스프로젝트내
WebContent/WEB-INF/lib 내에등록하고사용하고자하는jsp파일에서선언

 

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

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

<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions"%>

 

 

JSTL 태그 종류

core Tags : 변수와 url, 조건문, 반복문 등의 로직과 관련된 JSTL 문법 제공 

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

 

Formatting Tags : 메시지 형식이나, 숫자, 날짜 형식과 관련된 포맷 방식 제공 

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

 

Function : trim,substring 과 같은 여러 문자열 처리 함수 제공 

<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions prefix="fn"%>

 

XML Tags : 데이터의 XML 파싱 처리등 XML 문서를 화면으로 읽어오는데 필요한 라이브러리 

<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/xml prefix="x"%>

 

SQL Tags : 페이지 내에서 Database를 연동하고 필요한 쿼리를 실행할 수 있는 라이브러리

<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/sql prefix="sql"%>

 

 

JSTL Core Tags 

<c:set> 변수를 선언하고 나서 그 변수에 초기 값 대입 (자바에서 변수를 선언하는 방식과 비슷)

 

Java 변수선언방식: intnum= 100;

 

<c:set>변수선언방식: <c:setvar=“num” value=“100” />

 

사용법 :

<c:set>에서 변수 타입은 별도로 선언하지 않지만 초기 값은 반드시 기술해야 하며

<c:set>으로선언한변수는EL식안에서사용가능
하지만 JSP<% %>같은 스크립틀릿요 소 에서는사용 불가능

 

<c:set var=“num” value=“100” />
${num} * <c:set>에서선언한변수는EL식안에서사용가능

 

<c:set> scope 속성 

scope속성을 이용하면 page영역 뿐만 아니라

request, session, application 영역에 속성 저장 가능(미 설정시 기본값은 page)

 

<c:setvar="num" value="100" scope="request" />

 

<c:set> 태그배열 속성

<c:set>의 body 부분에“, “를 이용해서 배열이나 Collection처럼
여러 개의  값 지정 가능* body에 있는 값이 array변수에 할당된 변수 값 이 됨

 

<c:set var="array" scope="request">
	yellow, blue, pink, red, green
</c:set>

 

<c:remove> 

<c:set>으로 선언한 변수는 page, request, session, application영역에

속성으로 저장되기 때문에 삭제해야 할 필요가 있을때 사용한다. 

 

<c:removevar=“num1” scope=“request”>
* request영역에 num1이라는 변수제거, 

만일scope속성을정의하지않으면
page, request, session, application영역에 저장되어 있는

num1이라는 이름의 속성을 모두 찾아 제거한다.

 

<c:out> 

출력문을 만드는 태그이다

 

<c:out value="출력값" default="기본값"/> 
<c:out value="출력값"> 기본값</c:out>

Value 에 EL 표현식을 쓸 수 있다. 

Value 값이 null 이면 기본값이 출력되고 기본값이 없으면 빈 문자열이 출력된다. 

 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<c:out value="Hello World" /><br>
<c:out value="${null}">JSTL</c:out><br>
<c:out value="Hello">World</c:out><br>
<c:out value="${null}" />
</body>
</html>

 

 

<c:if> 

자바 프로그램의 if문 과 비슷한 역할을 하는 태그로 조건식은
test라는 속성 값으로 지정(이때 조건식은 반드시 EL형식으로 기술)

 

<c:if test="${num1 > num2}">
	num1이더큽니다.
</c:if>

 

 

<c:choose>

자바 프로그램의 switch문과 비슷한 역할을 하는 태그로
<c:when>, <c:otherwise>태그와 함께 사용 되는데,
각각 switch문의 case, default절과 비슷한 역할

 

<c:choose>
      <c:when test="${num== 0}"> * 조건식
            처음 뵙 겠습니다.<br>
      </c:when>
      <c:when test="${num== 1}">
            다시 뵙게 되어 반갑습니다.<br>
      </c:when>
      <c:otherwise> * 아무 조건도 만족하지 못 할 경우 실행
            안녕하세요.<br>
      </c:otherwise>
</c:choose>

 

 

 

<c:forEach>

자바의 for, for-in문에 해당하는 기능 제공

 

<c:forEach begin="1" end="10" items="${list}" var="value">
		반복문<br>
</c:forEach>

 

items : 반복할 객체 명(Collection 객체) 

begin : 반복이 시작할 요소 번호 (0..n)

end: 반복이 끝나는 요소 번호 

step : 반복할 횟수 번호 

var : 현재 반복 횟수에 해당하는 변수 이름 

varStatus : 현재 반복에 해당하는 객체 요소 

current 현재 반복 회수

index : 반복 라운드의 제로 기반 인덱스 

count: 반복 라운드의 1 기반 인덱스 

first 현재 라운드가 반복을 통한 첫 번째임을 의미 

last : 현재 라운드가 반복을 통한 마지막 번째임을 의미  

<c:forEach items="${booklist}" var="book" varStatus="status">
    <tr>
        <td><c:out value="${status.count}"/></td>
        <td><c:out value="${book.name}"/></td>
    </tr>
</c:forEach>

 

<c:forTokens>

문자열에 포함된 구분자를 통해 토큰을 분리해 반복처리
items속성에는 토큰을 포함하는 문자열을 지정하고
delims속성에는 토큰을 분리 하는데 사용할 구획 문자 기술

 

<c:forTokens var="color" items="yellow blue pink red green" delims=" ">
	${color} <br>
</c:forTokens>

 

 

<c:url>

url경로를 생성하고 해당url의 param속성을 선언하여
쿼리스트링을 정의 할 수 있는 태그로 해당 태그를 통해 url경로와 관련 쿼리스트링 값을 미리 설정하여 제어 가능

 

<c:url var="url" value="jstl.jsp">
	<c:param name="name" value="abc"/>
</c:url>
<a href="${url}">jstl.jsp</a>

 

'JSP,Servlet,JSTL' 카테고리의 다른 글

Servlet/JSP 동작 순서  (0) 2021.12.08
HTTP 프로토콜이란?  (0) 2021.12.08
Servlet & JSP  (0) 2021.12.08
EL  (0) 2021.09.28
JSTL 복습-01  (0) 2021.09.28