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>
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정 > JSP 활용 연습' 카테고리의 다른 글
Dao, Dto, ServiceImp ( java) 활용 jsp 정리 (0) | 2023.06.23 |
---|---|
게시판 만들기_2 ( write.jsp / update.jsp )MariaDB (0) | 2023.06.19 |
게시판 만들기_1_1 ( update.jsp / write.jsp )MariaDB (0) | 2023.06.16 |
게시판 만들기_2 ( list.jsp / view.jsp )MariaDB (0) | 2023.06.16 |
게시판 만들기_1 ( list.jsp / view.jsp )MariaDB (0) | 2023.06.15 |