Home

Jeong-Yoon

18 Mar 2020

Web 03

JSTL

JSTL (JSP Standard Tag Library)

  • JSP 표준 태그 제공
  • JSP만의 기능을 가진 태그를 추가하여 사용 가능

Core (prefix : c, uri : http://java.sun.com/jsp/jstl/core)

  • 일반 프로그래밍에서 사용하는 기능 제공
  • 변수, 실행흐름의 컨트롤, 페이지 이동 등의 기능 제공
<c:set var="cnt" value=" ${ cnt + 1 } "/> <!-- 양쪽 공백이 존재 -->
${ cnt } <br> <!-- " 12 " (양쪽 공백을 포함한 문자열 형태) -->
<c:set var="cnt" value="${ cnt + 1 }"/> <!-- 문자열과 정수의 + 연산 -->
 ${ cnt } <br> <!-- " 12 " + 1 (타입 불일치 예외 발생) -->
 ...
pageContext 영역 : ${ cnt } <br>
request 영역 : ${ requestScope.cnt } <br>
  • value 속성의 값을 cnt에 적용하는데, 양쪽 공백까지 같이 적용.
  • 문자열 데이터로 값이 저장
  • 문자열 데이터와 정수 데이터의 연산 시 예외 발생
  • EL에서의 + 연산은 정수만 가능

remove Tag

  • pageContext 영역 data 삭제

      <c:remove var="data" scope="page"/>
    
  • remove 영역 data 삭제

      <c:remove var="data" scope="request"/>
    

if Tag

<c:if test="${ not empty param.type }">
  • jstl은 else가 따로 없기 때문에 여러 조건을 주기 위해서는 if문만 사용해야 한다.

choose Tag

<c:choose>
    <c:when>
        ...
    </c:when>
    <c:otherwise>
        ...
    </c:otherwise>
</c:choose>
    • if~else 또는 switch~case와 유사하게 사용
    • else if 또는 case와 유사, 내부 조건을 비교
    • default와 유사, 조건이 만족하지 않은 경우

forEach Tag

  • Java의 for문과 같다.
<c:forEach var="element" items="${ members }">
	${ element }
</c:forEach>

<!-- 1 ~ 10 까지의 정수 출력 -->	
<c:forEach var="i" begin="1" end="10">
	${ i }
</c:forEach>

<!-- 1 ~ 100까지의 홀수 합계 출력 -->
<c:set var="sum" value="0"/>
<c:forEach var="i" begin="1" end="100" step="2"> <%-- step : 증감 --%>
	<c:set var="sum" value="${ sum + i }"/>
</c:forEach>

out Tag

  • value 속성만 지정

      <c:out value="JSTL"/>
    
  • value 속성 값이 없는 경우(default)

      <c:out value="${ msg }" default="msg가 영역에 존재하지 않습니다."/>
    
  • HTML 요소를 포함하는 경우 (escapeXml=”false”)

      <c:out value="<hr>" escapeXml="false"/>
    
    • 기본적으로 escapeXml 속성의 값은 true,
      true면 <hr>을 html에서 처럼 선이 아니고 그냥 <hr> 문자열 그 자체로 본다.
    • HTML 요소 기능을 표현하려면 escapeXml 속성을 false로 지정

XML (Extensible Mark-up Language)

  • 데이터 처리를 위해 확장된 언어
  • HTML은 문서를 표현하는데 주로 사용되지만, XML은 “데이터 저장 양식”으로도 활용

[JSP 내장 객체 (Built-in)]

out : JSP 내의 출력 스트림 객체
page : JSP 내의 자바 클래스 객체
pageContext : JSP 페이지의 정보를 저장하는 객체
request : 요청 정보를 저장하는 객체
response : 응답 정보를 저장하는 객체
session : 웹 브라우저의 정보를 유지하기 위해 세션 정보를 저장하는 객체
application : 웹 어플리케이션 영역 정보를 저장하는 객체 
exception : JSP 내의 예외가 발생하는 경우 사용하는 객체
config : JSP의 설정 정보를 저장하는 객체

Til next time,
Jeong-Yoon at 00:00

scribble