[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의 변수명)" />
- <c:out value="출력값" default="기본값" excapeXml="true 또는 false" />
2. 변수 설정 및 삭제 태그 : <c:set>, <c:remove>
- <c:set var="변수명" value="설정값" />
- <c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" />
- 주의점 : 보통은 페이지에서만 "${ }"을 통해 불러올 수 있지만, 범위에 session을 주면 include하여서 쓸 수 있다.
- <c:remove var="변수명" />
- <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문을 쓸 때 쓴다.
- <c:if test="조건" var="변수명" scope="범위" ></c:if>
- <choose> // 보통 if else로 쓴다면 이런 형태가 된다.
- <c:when test="조건"></c:when>
- <c:otherwise></c:otherwise>
- </choose>
5. 반복 처리 태그 : <c:forEach>, <c:forTokens>
- <c:forEach var="변수명" begin="시작 인덱스" end="끝 인덱스" step="증감식"></c:forEach>
- <c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수"></c:forEach>
- <c:forTokens items="객체명" delims="구분자" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수">
6. 페이지 처리 태그 : <c:import>, <c:redirect>, <c:url>, <c:param>
- <c:import url="URL값" /> : <%@ import>, <%@ include>를 둘 다 <c:import>으로 대체 할 수 있다.
- <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>
<c:set> 사용 후 :
<c:out value="${test}" />
</h3>
<c:remove var="test" />
<h3>
<c:remove> 사용 후 :
<c:out value="${test}" />
</h3>
<c:catch var="err">
<%=10 / 0%>
</c:catch>
<h3>
<c:catch>로 잡아낸 오류 :
<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"); %>
이 두가지는 같은 뜻이다.
'◽ JSTL' 카테고리의 다른 글
[JSTL] 사소한 '공백'이 오류를 낸다. Jsp페이지에서 JSTL의 test 부분 (0) | 2019.09.08 |
---|---|
[JSTL] fn:substring - 문자열 길이 제한(자르기) (0) | 2019.09.07 |
[JSTL] <c:forTokens> → JSP페이지에서 이미지 확장자 체크하기 (0) | 2019.09.05 |
[JSTL] <c:forTokens> : JSP페이지에서 파라미터 값 이미지 확장자 유무 체크 (0) | 2019.09.02 |
[JSTL] JSTL fmt - 국제화/형식화 액션 <fmt:명령어> (0) | 2019.07.10 |
[JSTL] 갤러리 게시판 정렬 방식(바둑판 정렬, n개씩 넣고 줄바꿈) (0) | 2019.06.30 |
[JSTL] taglibs.jar - JSTL(JSP Standard Tag Library), EL(Expression Language) (0) | 2019.06.11 |