◽ JSTL

[JSTL] JSTL core - JSTL의 기본 액션 <c:명령어>

JSTL core


  JSTL core는 JSTL에서 기본적인 기능(즉, 컨트롤에 관계된 기능)들을 구현해놓은 라이브러리이다. 먼저 이 라이브러리를 사용하기 위해서는 JSP 페이지에 태그 라이브러리로 등록을 해야 한다. ( 아래와 같이 쓴다. )

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

  prefix의 c는 태그를 사용할 때 항상 붙는 접두어가 된다. 예를 들어 <c:out/>, <c:set/>같이 태그 앞에 c가 항상 붙게 되는 된다. c를 사용하지 않아도 크게 문제는 발생하지 않지만, c를 사용하는 것이 약속된 형태이다. ( core의 약자인 'c' )

 

1. 출력 태그 : <c:out>

  • <c:out value="출력값(set의 변수명)" />
    1. <c:out value="출력값" default="기본값" excapeXml="true 또는 false" />

c:out

 

※참고 ${} : EL표현

2. 변수 설정 및 삭제 태그 : <c:set>, <c:remove>

  • <c:set var="변수명" value="설정값" />
    1. <c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" />
    2. 주의점 : 보통은 페이지에서만 "${ }"을 통해 불러올 수 있지만, 범위에 session을 주면 include하여서 쓸 수 있다.
  • <c:remove var="변수명" />
    1. <c:remove var="변수명" scope="범위" />

 

3. 예외 처리 태그 : <c:catch>

  • <c:catch var="변수명" ></c:catch> 

 

4. 조건 처리 태그 : <c:if>, <c:choose>, <c:when>, <c:otherwise>

  • <c:if test="조건"></c:if>      // 보통의 단순한 if문을 쓸 때 쓴다.
    1. <c:if test="조건" var="변수명" scope="범위" ></c:if>
  • <choose>          // 보통 if else로 쓴다면 이런 형태가 된다.
    1. <c:when test="조건"></c:when>
    2. <c:otherwise></c:otherwise>
  • </choose>

조건은 괄호안에 넣는다.

 

 

5. 반복 처리 태그 : <c:forEach>, <c:forTokens>

  • <c:forEach var="변수명" begin="시작 인덱스" end="끝 인덱스" step="증감식"></c:forEach>
    1. <c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수"></c:forEach>

<c:forEach>

  • <c:forTokens items="객체명" delims="구분자" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수">

forTokens

 

6. 페이지 처리 태그 : <c:import>, <c:redirect>, <c:url>, <c:param>

  • <c:import url="URL값" /> : <%@ import>, <%@ include>를 둘 다 <c:import>으로 대체 할 수 있다.
    1. <c:import url="URL값" var="변수명" scope="범위" varReader="입력스트림명" context="contextName" charEncoding="인코딩값">
  • <c:redirect url="URL값" context="contextName">
  • <c:url var="변수명" scope="범위" value="값" context="contextName">
  • <c:param name="파라미터명" value="값"> : 파라미터 추가 시 쓰는 것.

1. 간단한 예제 코드로 보기


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>JSTL core 라이브러리 사용 예제 1</title>
</head>
<body>
    <c:set var="test" value="Hello JSTL!" />
    <h3>
        &lt;c:set&gt; 사용 후 :
        <c:out value="${test}" />
    </h3>
    <c:remove var="test" />
    <h3>
        &lt;c:remove&gt; 사용 후 :
        <c:out value="${test}" />
    </h3>
 
    <c:catch var="err">
        <%=10 / 0%>
    </c:catch>
    <h3>
        &lt;c:catch&gt;로 잡아낸 오류 :
        <c:out value="${err}" />
    </h3>
 
    <c:if test="${5<10}">
        <h3>5는 10보다 작다.</h3>
    </c:if>
    <c:if test="${6+3==9}">
        <h3>6 + 3 은 9이다.</h3>
    </c:if>
 
    <c:choose>
        <c:when test="${5+10==50}">
            <h3>5+10은 50이다.</h3>
        </c:when>
 
        <c:otherwise>
            <h3>5+10은 50이 아니다.</h3>
        </c:otherwise>
    </c:choose>
</body>
</html>
 
r

 

실행 화면

2. 파라미터 값 JSTL로 받기. 


<c:param name="파라미터명" value="값">

get방식으로 전송
http://localhost:8080/market/saleProductWrite_Post.jsp?sp_no=50
이렇게 넘어 들어오면 JSTL에서는 ${param.name}  으로 받을수 있다.


<%   String sp_no = request.getParameter("sp_no"); %> 

이 두가지는 같은 뜻이다.

 

푸터바