Maven 의존성 설정
JSTL을 사용하기 위해서는 프로젝트의 pom.xml 파일에 다음 의존성을 추가해야 한다.
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
EL(Expression Language) 표현식
EL(Expression Language)은 JSP 페이지에서 데이터를 더 편리하게 표현하기 위한 언어이다. ${} 구문을 사용하여 복잡한 표현식을 단순화할 수 있다.
주요 기능
- 데이터 조회: 속성, 세션, 애플리케이션 영역에서 데이터 가져오기
- 산술 연산: 간단한 수학 연산 수행
- 웹 객체 접근: request 파라미터, 세션 속성 등 참조
연산 예제
<c:out value="${10 + 5}"></c:out>
파라미터 참조
사용자명: <input type="text" name="username" value="${param.username}"><br>
JSP 표준 태그
JSP에는 내장된 표준 액션 태그가 있다. 이 태그들은 웹 애플리케이션에서 페이지 이동과 데이터 전달에 사용된다.
<jsp:forward page="/target.jsp">
<jsp:param name="userId" value="hong"/>
<jsp:param name="level" value="3"/>
</jsp:forward>
JSTL(JSP Standard Tag Library)
JSTL은 HTML 태그로 표현하기 어려운 로직을 처리하기 위해 사용하는 사용자 정의 태그 라이브러리이다. 자바 코드를 태그 형태로 대체할 수 있다.
사용 조건
- JSTL 라이브러리 의존성 추가
- JSP 페이지에서 taglib 디렉티브 선언
- Tomcat 서버에 JSTL 라이브러리 배포
コア(core) 라이브러리 선언
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
条件문 처리 - c:if
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>条件문 테스트</title>
</head>
<body>
<h4>관리자 확인</h4>
<hr>
<form action="checkAdmin.jsp" method="get">
아이디: <input type="text" name="userid" value="${param.userid}"><br>
<input type="submit" value="확인">
</form>
<c:if test="${param.userid == 'master'}" var="isMaster">
<c:out value="관리자님 환영합니다"/>
</c:if>
<c:out value="${isMaster}"/>
</body>
</html>
반복문 처리 - c:forEach
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>반복문 테스트</title>
</head>
<body>
<%
ArrayList<String> members = new ArrayList<>();
members.add(0, "김철수");
members.add(1, "이영희");
members.add(2, "박지민");
members.add(3, "정수현");
request.setAttribute("memberList", members);
%>
<c:forEach var="member" items="${memberList}">
<c:out value="${member}"/><br>
</c:forEach>
<hr>
<c:forEach var="member" items="${memberList}" begin="1" end="2" step="1">
<c:out value="${member}"/><br>
</c:forEach>
</body>
</html>
forEach 태그 속성 설명
- var: 현재 반복의 항목 값을 저장할 변수명
- items: 반복할 컬렉션 또는 배열对象
- begin: 시작 인덱스 (0부터 시작)
- end: 종료 인덱스
- step: 증감 값