Java 관련/JSTL, EL

JSTL (종류, 사용법, core, fuctions)

Wings of Freedom 2021. 3. 22. 03:04

1. JSTL 이란?

JSTL은 JSP 표준라이브러리(JSP Standard Tag Library)의 약어이다. 자주 사용될 수 있는 커스텀 태그들을 모아서 표준으로 모아놓은 태그 라이브러리다.

JSTL 의 종류

라이브러리명 접두어 주요 기능 URI
코어 c 변수 지원, 제어문, 페이지 관련 처리 http://java.sun.com/jsp/jstl/core
함수 fn collection 처리, String 처리 http://java.sun.com/jsp/jstl/fuctions
포매팅 fmt 포맷 처리, 국제화 지원 http://java.sun.com/jsp/jstl/fmt
데이터베이스 sql DB관련 CRUD 처리 http://java.sun.com/jsp/jstl/sql
XML x XML관련 처리 http://java.sun.com/jsp/jstl/xml

사용법

위의 표에서 참고하여 JSP 상단에 <%@ taglib prefix="접두어" uri="URI 경로" %> 를 적어주면 된다. 접두어야 마음대로 쓸 수 있는 모양이지만 기왕이면 표준을 지키는게 좋지..

2. core 의 주요 기능

  • <c:set> : 변수 선언, 할당
    • scope 속성 : 범위 4가지(page, request, session, application), default 는 page
    • ex. int count = 10; = <c:set var="count" value="10">
  • <c:out> : 출력
    • ex. System.out.println("hello");을 간단하게 <c:out value="hello">
  • <c:remove> : 변수값 remove
    • scope 속성
  • <c:if> : if문, else문 없음
    • var 속성 : 조건식의 값을 저장할 변수
    • scope 속성 : boolean 변수가 사용될 범위를 뜻함
    • ex. <c:if test="조건식"> 참일때 실행할 문장 </c:if>
  • <c:choose>, <c:when>, <c:otherwise> : if-else 문 처럼 사용 가능
    • when 이 true 이면 해당 블럭 실행
    • 모든 when 이 false 이면 otherwise 블럭 실행
  <c:choose>
      <c:when test="${empty boardList}">
          등록된 글이 없습니다.
      </c:when>
      <c:when test="조건식">
          ...
      </c:when>
      <c:otherwise>
          ...
      </c:otherwise>
  </c:choose>
  • <c:forEach> : for문
    속성 설명 비고
    var 사용할 변수명 Required
    items Collection 객체(List, ArrayList) Required
    begin 시작 index(default = 0)  
    end 종료 index(default = items크기-1)  
    step 증감 수  
    varStatus 반복상태를 알 수 있는 변수  
  <c:forEach var="item" items="${list}" begin=0 end=5 step=1 varStatus="status">
      번호 : ${status.count}
      이름 : ${item.name}
      나이 : ${item.age}
      주소 : ${item.addr}
  </c:forEach>

 

3. fuctions 의 주요 기능

  • boolean startsWith(java.lang.String, java.lang.String) : 문자열A가 문자열B로 시작하는 경우, true 반환
    • ex. <a class="<c:if test="${fn:startsWith(servletPath, '/board')}">active</c:if>" href="/board">



출처: https://sjh836.tistory.com/136?category=680970 [빨간색코딩]