Web-JSTL
JSTL(JSP Standard Tag Library)
JSP 표준 태그 라이브러리이다.
라이브러리(library): 여러 프로그램이 공통으로 사용하는 코드를 모아 놓은 코드의 집합이다.
JSTL API에서 다운 받은 library를 WEB-INF/lib에 추가 후 불러와서 사용하면 된다.
JSTL 기본
-
선언
< %@ taglib prefix=”사용할 변수명” uri=”http://java.sun.com/jsp/jstl/core”%> -
입력
< c:set var=”변수명” value=”값” scope=”범위” /> - 출력
< c:out value=”${변수명}” /> -
조건문
1)범위 < c:choose>
2) if: < c:when test=”조건”>
3) else: < c:otherwise> - 반복문
< c:forEach var=”변수명” begin=”시작값” end=”끝값” step=”증가값”> - 문자열 분할
< c:forTokens var=”변수명” items=”분할할 변수명” delims=”문자 구분 기준” begin=”시작 배열의 Index” end=”끝 배열의 Index” step=”Index 증가값”> - Try-Catch
< c:catch var=”변수명”> 실행할 내용 </ c:catch>
예시 코드
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<%@page import="java.util.Date"%>
<%@page import="javax.xml.crypto.Data"%>
<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
JSPL Test
<br> **변수**
<br>
<c:set var="irum" value="홍길동" scope="page" />
<c:out value="${irum}" />
<br>
<c:set var="bb" value="star" />
<c:if test="${bb=='star' }">
<c:out value="${bb }" />
</c:if>
<hr>
<c:choose>
<c:when test="${bb=='star'}">
<c:out value="${bb }" />
</c:when>
<c:when test="${bb=='moon'}">
<c:out value="${bb }" />
</c:when>
<c:otherwise>
<c:out value="${bb }" />
</c:otherwise>
</c:choose>
<c:forEach var="cc" begin="1" end="10" step="2">
<c:out value="${cc*3}" />&nasp;
</c:forEach>
<hr>
<c:forEach var="cc" begin="1" end="9" step="1">
3*${cc}=${3*cc}<br>
</c:forEach>
<hr>
<br>
<%
HashMap map = new HashMap();
map.put("name", "신기해");
map.put("today", new Date());
%>
<c:set var="arr" value="<%=new int[] { 1, 2, 3, 4, 5 }%>" />
<c:set var="m" value="<%=map%>" />
<c:forEach var="a" items="${arr}">
${a}
</c:forEach>
<c:forEach var="a" items="${arr}" begin="2" end="4">
${a}
</c:forEach>
<c:forEach var="a" items="${m}">
${a.key} ${a.value}
</c:forEach>
<hr>
**문자열 분할**<br>
<c:forTokens var="animal" items="horse,cat,dog,lion" delims="," begin="0" end="3">
${animal}
</c:forTokens>
<hr>
<c:forTokens var="animal" items="horse/cat/dog/lion" delims="/" begin="0" end="3" step="1" varStatus="index">
${index.begin}:${index.end}
</c:forTokens>
</body>
</html>
결과
JSTL SQL 연결
JSTL로 DB와 쉽게 연결할 수 있다.
아래 예시는 ds라는 변수에 연결하려는 DB의 정보를 담아서 Query문을 사용하는 예시이다.
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
46
47
48
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
JSTL로 상품자료 읽기
<br>
<c:catch var="err">
<sql:setDataSource var="ds" url="jdbc:mysql://localhost:3306/test"
driver="org.mariadb.jdbc.Driver" user="root" password="123" />
</c:catch>
<sql:query var="rs" dataSource="${ds}">
select * from sangdata where code>=? and code <=?
<sql:param value="2"/>
<sql:param value="5"/>
</sql:query>
<table border="1">
<tr>
<th>코드</th>
<th>상품명</th>
<th>수량</th>
<th>단가</th>
</tr>
<c:forEach var="s" items="${rs.rows }">
<tr>
<td>${s.code}</td>
<td>${s.sang}</td>
<td>${s.su}</td>
<td>${s.dan}</td>
</tr>
</c:forEach>
</table>
<c:if test="${err!=null}">
Error: ${err.message }
</c:if>
</body>
</html>
결과 - JSTL 사진
DB - 실제 자료
내용 참조: mkil 블로그
참조: 원본코드
코드에 문제가 있거나 궁금한 점이 있으면 wjddyd66@naver.com으로 Mail을 남겨주세요.
Leave a comment