JSP,JSTL,EL 표현식 가이드

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 태그로 표현하기 어려운 로직을 처리하기 위해 사용하는 사용자 정의 태그 라이브러리이다. 자바 코드를 태그 형태로 대체할 수 있다.

사용 조건

  1. JSTL 라이브러리 의존성 추가
  2. JSP 페이지에서 taglib 디렉티브 선언
  3. 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: 증감 값

태그: JSP jstl el-expression java-web taglib

5월 26일 07:15에 게시됨