일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드이그나이터
- 톰캣 9.0 설치
- scanner 연습문제
- [Eclipse] 이클립스 마켓플레이스 (Marketplace) 사용방법
- 이클립스
- 웹에 데이터를 전송하는 방법
- 이클립스 서버연동
- 오라클 초기 셋팅
- 이클립스 프로젝트 변경
- Nexacro
- 코드 정리
- php 날자 함수
- 자바스크립트
- 코드 처리 시간
- PLSQL 설치
- CMD
- Oracle
- 자동 배포
- oracle datatype
- strtotime()
- 개발 일기
- ER 마스터 사용법
- id 체크
- 기초 HTML
- github
- 자바
- php
- js
- 실행파일만들기
- DDL
- Today
- Total
Chillax in dev
[JSP&Servlet] JSP의 JSTL(표준 태그 라이브러리) 사용법 정리 본문
[JSP&Servlet] JSP의 JSTL(표준 태그 라이브러리) 사용법 정리
-JSTL의 이해
JSTL(JSP Standard Tag Library)는 표준 태그 라이브러리로 jsp 페이지에서 일반적인 핵심 기능을 캡슐화하여 제공하는 jsp 태그 컬렉션입니다. jsp 입문 단계를 공부하며 어렵게 느껴졌지만 이는 프레임워크(Framework) 개발을 할 때는 JSTL의 사용이 많기 때문에 자바 고급 개발자가 되기 위해 반드시 알아야 할 분야로 뽑습니다.
JSTL은 일반적인 반복,조건의 로직이나 포매팅 작업, XML 문서, SQL 태그의 조작을 위한 태그를 사용할 때 사용됩니다.
- 사용 준비
이클립스로 개발할때 JSTL을 사용하기 위한. jar파일을 준비해야 합니다.
jstl.jar , standard.jar 파일입니다. jstl을 사용하기 위해 해당 컴포넌트 WEB-INF/lib 폴더에 넣고 저장합니다.
아래 url을 통해 다운로드할 수 있습니다.
http://tomcat.apache.org/taglibs/standard/
- JSTL에서 제공되는 태그의 종류는 크게 5가지입니다.
태그 | 기능 |
Core | 가장 자주 사용되는 jstl 태그입니다. 일반적인 프로그램의 기능을 제공합니다. |
Formatting | 날짜,시간, 숫자 텍스트를 포멧하고 표시하는 fomatter 기능을 제공합니다. |
SQL | RDBMS와 상호 작용하는 태그를 제공합니다. |
XML | XML문서를 생성하고 조작하는 방법을 제공합니다. |
Functions | 일반적인 문자열을 가공하고 조작하는 표준함수를 제공합니다. |
- 태그를 사용하기 위한 taglib 지시자(directive)의 선언
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> // core 태그 임포트
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> // formatting 태그 임포트
잘 작성된 JSTL문법을 보고 한참 왜 실행이 안되지 오류를 찾다 찾다 보면 결국 해당 taglib를 선언하지 않아서 사용 못하는 실수를 많이 발견하곤 합니다. 내가 jstl을 사용한다면 해당 taglib를 반드시 선언해주세요.
- Core 태그 예제로 배우기
* c:out으로 단순 출력.
<c:out value="Hello World" /> //단순히 Hello World문자열을 jsp 파일에서 실행시 웹 화면에 출력
* c:set으로 변수 생성 후 값 저장 ${}로 변수에 저장한 값 출력 변수의 삭제는 c:remove로 한다.
(참고로 이때 변수엔 기본형부터 객체 까지도 넣을 수 있다!)
<h2>변수 생성 및 초기화 1</h2>
<c:set var="msg" value="Hello"></c:set>
<!--세팅 변수는 msg 값은 hello 넣음. -->
\${msg} = ${msg}<br>
<h2>변수 생성 및 초기화 2</h2>
<c:set var="age">30</c:set><br>
<!--이렇게도 넣을수 있다 벨류로안주고 -->
<h2>EL에 의한 출력</h2>
\${age} = ${age}<hr><br>
<c:remove var="msg">
<c:remove var="age">
ex01) jstl 조건 예시 <c:if>, <c:when>, <c:otherwise>, <c:choose> 사용법을 배워보자
아래 간단한 예시로도 많은 것을 공부할 수 있다 아래 두 코드는 각각 정보를 입력하는 html 페이지와 전달 값을 받아 처리하는 jsp 페이지로 첨부되어있다.
주의 깊게 볼 것은 form 태그의 사용이다. select와 option을 이용해서 드롭다운 박스에서 원하는 색을 선택한다. 그리고 submit버튼을 통해 action에 해당 jsp 페이지로 값들을 보낸다.
jsp페이지로 이동한 후 perfix=c로 core라이브러리의 jstl을 사용할 수 있게 임포트 문을 작성하고 , 값을 얻어오는 방식을 확인하면 ${param.name값}로 전송된 파라미터를 얻어 오지만 <c:if test=${param.id 조건문} > 의형태로 작성함을 확인할 수 있다. <c:when>, <c:otherwise>, <c:choose> 은 자바의 switch case default 구문처럼 선택의 로직을 구성할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
</head>
<body>
<h2>Core Tags</h2>
<form method="get" action="coreTags2.jsp">
id : <input name="id"><br/>
color : <select name="color">
<option selected value="yellow">옐로우</option>
<option value="blue">블루</option>
<option value="orange">오렌지</option>
<option value="pink">핑크</option>
</select><br/>
<input type="submit" value="보내기">
</form>
</body>
</html>
|
cs |
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
|
<%@ page contentType="text/html; charset=EUC-KR" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>JSTL</title>
</head>
<body >
<h2>Core Tags2</h2>
<c:if test="${param.id != null}">
<b>${param.id}</b>
</c:if>
<c:if test="${param.id == null}">
<b>Guest</b>
</c:if>
<c:choose>
<c:when test="${param.color=='yellow'}">
<c:set var="c" value="노란색"/>
</c:when>
<c:when test="${param.color=='blue'}">
<c:set var="c" value="파란색"/>
</c:when>
<c:when test="${param.color=='orange'}">
<c:set var="c" value="오렌지색"/>
</c:when>
<c:when test="${param.color=='pink'}">
<c:set var="c" value="핑크색"/>
</c:when>
<c:otherwise>
<c:set var="c" value="블랙"/>
</c:otherwise>
</c:choose>
님이 좋아하는 색상은 <font color="${param.color}">${c}</font> 입니다.
</body>
</html>
|
cs |
- ex02) jstl 반복 예제
이번엔 대표적인 반복문을 어떻게 사용하는지 살펴볼 것이다.
일단 상단 스크립릿 <% %>에 선언된 배열과 문자열을 확인하자. 배열은 그렇다 치고 문자열은 , ; + 와같은 여러 기호가 같이 있어 난잡해 보인다.
<c:set>으로 스크립릿에서 선언된 배열 srt1을 page 저장소에 'arr' 란 변수명으로 저장했다. 그 후 반복문을 통해 배열을 출력한다. 아래의 <for:Tokens> 역시 크게 다르지 않다 특징은 delims를 지정하여 StringTokeniger와 같은 기능으로 문자열을 분해할 수 있다는 사실이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<%@ page contentType="text/html; charset=EUC-KR" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String str1[] = {"simba","rorod","tina","poli"};
String str2 = "JAVA, JSP, Spring,k;; , Android+1";
%>
<html>
<head>
<title>JSTL</title>
</head>
<body >
<h2>Core Tags3</h2>
<c:set var="arr" value="<%=str1%>"/>
<c:forEach var="i" items="${arr}" begin="0" step="1" end="3">
${i}<br/>
</c:forEach>
<hr align="left" width="220"/>
<c:set var="s" value="<%=str2%>"/>
<c:forTokens var="st" items="${s}" delims=", ;">
<b>${st} </b>
</c:forTokens>
</body>
</html>
|
cs |
< core 정리 >
표로 잘 정리되어있어 공부하기 위해 참조합니다. (출처:JSPStudy.co.kr)
- Formatting 태그 예제로 배우기
포메팅 태그 라이브러리는 날짜, 시간, 숫자 및 텍스트를 원하는 양식으로 포맷하고 통일되게 사용하도록 도움을 줍니다.
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
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 날자</title>
</head>
<body>
<c:set var="now" value="<%=new java.util.Date()%>"></c:set>
\${now } :${now}<br>
<fmt:formatDate value="${now }"></fmt:formatDate><br>
date : <fmt:formatDate value="${now }" type="date"></fmt:formatDate><br>
time : <fmt:formatDate value="${now }" type="time"></fmt:formatDate><br>
both : <fmt:formatDate value="${now }" type="both"></fmt:formatDate><br>
default : <fmt:formatDate value="${now }" type="both" dateStyle="default" timeStyle="default"></fmt:formatDate><br>
short : <fmt:formatDate value="${now }" type="both" dateStyle="full" timeStyle="full"></fmt:formatDate><br>
medium:<fmt:formatDate value="${now }" type="both" dateStyle="medium" timeStyle="medium"></fmt:formatDate>
long:<fmt:formatDate value="${now }" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate><br>
full:<fmt:formatDate value="${now }" type="both" dateStyle="long" timeStyle="long"></fmt:formatDate><br>
pattern="yyyy년MM월dd일 hh시 mm분 ss초":<fmt:formatDate value="${now }"
pattern="yyyy년MM월dd일 hh시 mm분 ss초"></fmt:formatDate><br>
<!--참고로 <><>사이에 엔터 가있으면 안된다.잘 이어 붙혀주자. -->
</body>
</html>
|
cs |
< Formatting 정리 >
표로 잘 정리되어있어 공부하기 위해 참조합니다. (출처 : JSPStudy.co.kr)
- JSTL 함수 (functions)
jstl함수 라이브러리는 일반적인 문자열 조작 함수를 제공합니다.
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
|
<%@ page contentType="text/html; charset=EUC-KR" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<title>JSTL</title>
</head>
<body>
<h2>Functions Tags</h2>
<c:set var="str" value="the show must go on!"/>
<hr width="430" align="left" color="red"/>
str : <b>${str}</b><br/>
length : <b>${fn:length(str)}</b><br/>
substring : <b>${fn:substring(str,0,8)}</b><br/>
substringAfter : <b>${fn:substringAfter(str,"you know")}</b><br/>
substringBefore : <b>${fn:substringBefore(str,"the")}</b><br/>
toUpperCase : <b>${fn:toUpperCase(str)}</b><br/>
toLowerCase : <b>${fn:toLowerCase(str)}</b><br/>
replace : <b>${fn:replace(str,"show","stage")}</b><br/>
indexOf : <b>${fn:indexOf(str,"the")}</b><br/>
startsWith : <b>${fn:startsWith(str,"hello")}</b><br/>
endsWith : <b>${fn:endsWith(str,"hello")}</b><br/>
contains : <b>${fn:contains(str,"hello")}</b><br/>
containsIgnoreCase : <b>${fn:containsIgnoreCase(str,"hello")}</b><br/>
<c:set var="arr" value="${fn:split(str,' ')}"/>
join : <b>${fn:join(arr,"&&")}</b><br/>
<hr width="430" align="left" color="blue"/>
</body>
</html>
|
cs |
- 그 이외에도 다양한 기능들을 제공합니다. 필요한 기능이 생길 때마다 내 것으로 만들 수 있도록 공부하는 것이 좋겠습니다.
'Java 공부 > Java' 카테고리의 다른 글
[Java]JSmooth 를 이용해서 자바(.jar)로 exe 프로그램 만들기 (0) | 2020.12.31 |
---|---|
[java] swing 으로 간단한 응용프로그램을 만들어보자 (0) | 2020.12.29 |
[Java] JVM의 메모리 구조 (0) | 2020.12.22 |
[ERMaster] ER마스터 플러그인 툴로 DB 관리하기 (0) | 2020.07.16 |
Eclipse 없이 cmd dos창으로 자바 실행하기 (0) | 2020.07.11 |