728x90
JSTL
JSTL은 JavaServer Pages Standard Tag Library의 약어로, Java 코드를 바로 사용하지 않고 HTML 태그 형태로 직관적인 코딩을 지원하는 라이브러리입니다. JSTL은 반복, 조건 로직이나 formatting 작업, XML 문서, SQL 태그의 조작을 위한 태그에 사용됩니다.
JSTL 다운로드
JSTL을 사용하기 위해서는 JSTL.jar 파일을 적용해야 합니다.
https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
jar 파일을 다운로드 합니다.
jar 파일을 src > main > webapp > WEB-INF > lib > jstl-1.2.jar 에 위치시킵니다.
JSTL 사용방법
JSTL은 라이브러리이기 때문에 사용하기 전에 core를 header에 추가해주어야 합니다.
<% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
JSTL 주요 태그
태그명 | 설명 |
<c:set> | 변수(var)에 값(value)를 저장합니다. |
<c:out> | 값(value)를 출력합니다. |
<c:if> | 조건식(test)을 검사하고 조건식이 성공(true)할 때 처리합니다. |
<c:choose> | 자바의 switch case문과 유사합니다. |
<c:when> | 조건식(test)에 맞는 조건으로 처리합니다. |
<c:otherwise> | 모든 조건이 맞지 않으면 기본으로 처리됩니다. |
<c:forEach> | 시작(begin)부터 끝(end)까지 증가 값(step) 만큼 증가해서 반복적으로 변수(var)에 값(value)를 저장합니다. 자바의 for, while문과 유사합니다. |
실습
실습 1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="member" value="admin"/>
<c:if test="${ member == 'admin' }">
안녕하세요, 관리자님! :D
</c:if>
<c:if test="${ member != 'admin' }">
사용자 모드 : ${ member }
</c:if>
</body>
</html>
실습 2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>실무 - 쇼핑몰 상품 선택 페이지</title>
</head>
<body>
<form>
<select name="sel">
<option ${param.sel == 'a' ? 'selected' : '' }>a</option>
<option ${param.sel == 'b' ? 'selected' : '' }>b</option>
<option ${param.sel == 'c' ? 'selected' : '' }>c</option>
</select>
<input type="submit" value="선택">
</form>
<hr>
<c:choose>
<c:when test="${param.sel == 'a'}">
a를 선택했습니다.
</c:when>
<c:when test="${param.sel == 'b'}">
b를 선택했습니다.
</c:when>
<c:when test="${param.sel == 'c'}">
c를 선택했습니다.
</c:when>
<c:otherwise>
??? 잘못된 파라미터입니다...
</c:otherwise>
</c:choose>
</body>
</html>
GitHub
https://github.com/Qkrwnsgus0522/JSP
728x90