JSP - JSTL

iseon_u·2022년 6월 25일
0

JSP

목록 보기
4/4
post-thumbnail

JSTL JSP Standard Tag Library

  • JSP 표준 라이브러리
  • JSP 에서 자주 사용하는 기능 (반복문, 조건문, 데이터 표현 등) 을 미리 구현한 라이브러리
  • JSTL 은 EL 을 사용
  • 스크립트 릿으로 작성해야할 로직을 태그로 대신 처리

JSTL 사용법

build.gradle 설정

implementation 'javax.servlet:jstl'

Core Tags

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<c:out>

<c:out value="Hello World" default="Default"/>
<c:out value="Hello World">Default</c:out>
  • 출력문을 만드는 태그

<c:set>

<c:set var="name" value="Lee" scope="page|request|session|application"/>
<c:set var="name" scope="page|request|session|application">Lee</c:set>
  • 변수를 다룰 때 사용
  • JSP 로컬 변수가 아니라 서블릿 보관소 (JspContext, ServletRequest, HttpSession, ServletContext) 에 저장
  • scope 기본값은 page

<c:set> 객체 프로퍼티 값 설정

<c:set target="${member}" property="name" value="Kim"/>
  • 객체 프로퍼티 값을 설정할 때 사용
  • Java Bean 값 설정 가능

<c:if>

<c:if test="${10 < 20}" var="result">20은 10보다 크다.</c:if>
  • test 조건식이 true 면 본문 내용 표시

<c:choose>

<c:choose>
	<c:when test="${member.id == 'admin'}">
		관리자 접속
	</c:when>
	<c:otherwise>
		일반 유저 접속
	</c:otherwise>
</c:choose>
  • switch-case 와 같은 기능
  • <c:choose> == switch
  • <c:when> == switch 문 case
  • <c:otherwise> == switch 문 default

<c:forEach>

<c:forEach var="result" items="${memberList}">
	<li>${num}</li>
</c:forEach>
<c:forEach var="result" items="${memberList}" begin="0" end="5"></c:forEach>
  • 목록에서 값을 꺼낼 때 사용
  • 배열
  • Collection 구현체 (ArrayList, LinkedList, …)
  • Iterator 구현체
  • Enumeration 구현체
  • Map 구현체

<c:forTokens>

<c:forTokens var="item" items="${str}" delims="&">
	<li>${item}</li>
<c:forTokens>
  • 문자열을 구분자 (delimiter) 로 분리해서 반복문을 돌리는데 사용한다.

<c:url>

<c:url var="url" value="http://localhost:8080">
	<c:param name="name" value="Lee" />
	<c:param name="age" value="10" />
</c:url>
  • 매개변수를 포함한 URL 생성
  • URL 을 만들 때 사용한다.

<c:param>

  • url 매개변수 지정 가능

<c:import>

<c:import url="https://www.naver.com/"/>
  • 콘텐츠가 있는 주소의 응답 결과를 받아서 반환 (JSON)

<c:redirect>

<c:redirect url="url"/>
  • 리다이렉트 처리할 때 사용
  • HttpServletResponse의 sendRedirect()를 호출

empty 연산자

${empty title}
  • 값이 null 이면 true
  • 문자열, 배열, Map, Collection 객체의 크기가 0이면 true
  • 그 외 false

function tags

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

fn:contains()

${fn:contains(String, 'Hello')}
  • 지정된 문자열이 포함됬는지 확인

fn:containsIgnoreCase()

${fn:containsIgnoreCase(String, 'Hello')}
  • 대소문자를 구분하지 않고 지정된 문자열을 포함하는지 확인

fn:startsWith()

${fn:startsWith(String, 'Hello')}

fn:endsWith()

${fn:endsWith(String, 'World')}
  • 지정된 문자열로 끝나는지 확인

fn:trim()

${fn:trim(str)}
  • 문자열의 양쪽 끝 공백을 무시

fn:split()

${fn:split(str, '-')}
  • 구분 기호 문자열을 기반으로 문자열을 배열로 분할

fn:substring()

${fn:substring(str, 5, 10)}
  • 문자열 자르기

fn:replace()

${fn:replace(str, 'Hello', 'Bye')}
  • 문자열 교체

JSTL Formatting tags

<% taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  • 서식 태그는 메시지 형식, 번호 및 날짜 형식 등을 지원
  • 텍스트, 시간, 날짜 및 숫자를 표시하고 형식화

<fmt:formatDate>

<fmt:formatDate value="${date}" pattern="yyyy-MM-dd" />

SQL tags

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
  • SQL 지원

sql:query

  • SQL 실행

sql:update

- SQL 업데이트

profile
🧑🏻‍💻 Hello World!

0개의 댓글