JSTL(JSP Standard Tag Library)은 JavaServer Pages(JSP)에서 자주 사용되는 기능을 제공하는 

태그 라이브러리입니다. JSTL은 JSP에서 코드의 가독성을 높이고, 반복문, 조건문, 변수 처리 등을 

간편하게 수행할 수 있도록 도와준다.

 

taglibs-standard-impl-1.2.5.jar
0.20MB
taglibs-standard-spec-1.2.5.jar
0.04MB

 

 

 

JSTL jar 파일과 JSTL 구현체(implementation)를 설치

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- Core 태그 라이브러리 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- JSTL의 반복문 기능을 사용하여 ${list} 변수에 저장된 컬렉션을 반복하면서 해당 영역을 처리  -->
<!-- items 속성은 반복할 컬렉션을 지정  -->
<c:forEach var="dao" items= "${list}">
${dao.writer}<!-- ${dao.writer}는 반복되는 요소의 writer 속성 값을 출력  -->
</c:forEach>
 
</body>
</html>

Core 태그 라이브러리

JSTL의 핵심 기능으로, 변수 처리, 반복문, 조건문 등을 수행하는 태그들을 포함합니다. 

예를 들어, <c:forEach>, <c:if>, <c:set> 등이 있습니다.

 

Formatting 태그 라이브러리

날짜, 숫자, 메시지 등의 형식을 지정하고 처리하는 태그들을 포함합니다.

예를 들어, <fmt:formatDate>, <fmt:formatNumber>, <fmt:message> 등이 있습니다.

 

JSTL은 JSP 페이지에서 <%@ taglib %> 태그를 사용하여 선언하고,

이후에 제공하는 태그들을 사용할 수 있습니다

 

실습

JSTL ( jsp 파일 ) 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!-- Core 태그 라이브러리 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<style>
table { text-align:center; }
th { background-color: gray;}
.content {width: 200px;}

</style>

<title>Insert title here</title>
</head>
<body>


<table border="1">
<!-- ${dao.writer}는 반복되는 요소의 writer 속성 값을 출력  -->
<tr>
<th>이름</th>
<th>글제목</th>
<th class="content">글내용</th>
</tr>

<c:forEach var="dao" items= "${list}">
<!-- JSTL의 반복문 기능을 사용하여 ${list} 변수에 저장된 컬렉션을 반복하면서 해당 영역을 처리  -->
<!-- items 속성은 반복할 컬렉션을 지정  -->

<tr>
<td>${dao.writer}</td>
<td>${dao.title}</td>
<td>${dao.content}</td>
</tr>

</c:forEach>
</table>

 
</body>
</html>

 

servlet

package oracle0703;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import board.oracle.BoardDao;
import board.oracle.BoardDto;

/**
 * Servlet implementation class ListServ
 */
@WebServlet("/listServ")
public class ListServ extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ListServ() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		BoardDao dao = new BoardDao();
		ArrayList<BoardDto> list = dao.selectList();

		request.setAttribute("list", list);
		RequestDispatcher dispatcher
		 = request.getRequestDispatcher("boardView.jsp");
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

 

 

JSTL_2 (forEach, if, choose) 및 옵션들

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!-- Core 태그 라이브러리 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
request.setAttribute("name", "홍길동");
request.setAttribute("money", 5000);
request.setAttribute("dataList", new String[] {"a", "b", "c"});
%>
<%-- JSP 주석 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<!-- html 주석은 console에서 보임 -->
<c:if test="${name == '홍길동'}">
이름이 홍길동입니다<br/>
</c:if>

<%-- choose = switch문이랑 비슷  --%>
<c:choose>
<c:when test="${money >= 10000}">
돈 많아요.<br/>
</c:when>
<c:when test="${money > 0}">
돈이 조금 있어요.<br/>
</c:when>
<c:otherwise>
돈이 하나도 없어요.
</c:otherwise>
</c:choose>

<c:forEach var ="count" begin="0" end="10" step="2"> <%-- 0~10 반복 / step : 2배수 --%>
${count} 
</c:forEach>

<c:forEach var="data" items="${dataList}"><%--배열 호출--%>>
${data}
</c:forEach>

</body>
</html>

+ Recent posts