SlideShare a Scribd company logo
1 of 15
Download to read offline
JSTL
(JSP STANDARD TAG LIBRARY)
Introduction
2016_09_07 한정
JSTL은 무엇인가?
자바 코드에 익숙하지 않은
개발자들도 Custom tag를 통해 jsp 개발을 할 수 있다.
Custom tag 중 널리 쓰이는 것을 모아
심사를 거쳐 표준으로 만든 라이브러리 모음이다.
코드의 가독성, 재사용성이 향상되어 널리 쓰이고 있다.
JSTL을 가지고 하는 일
태그종류 prefix 설명 URI
Core c 변수선언 / 출력 / 조건식 등 실행흐름제어
http://java.sun.com/
jsp/jstl/core
Formatting fmt 숫자, 날짜, 시간을 포메팅 함
http://java.sun.com/
jsp/jstl/fmt
Database sql DB의 데이터 CRUD기능을 제공
http://java.sun.com/j
sp/jstl/sql
XML x Xml문서 처리
http://java.sun.com/j
sp/jstl/xml
Function fn 문자열에 제공하는 함수, EL(Expression Language)에서 사용
http://java.sun.com/j
sp/jstl/functions
환경설정(1)
http://tomcat.apache.org/taglibs/standard/
에서 버전을 선택해 download를 눌러줍니다.
Binaries/를 선택한 후
버전에 맞는 .zip파일을 받아
압축을 풀어줍니다.
파일내에 lib 파일에서 두개의
파일을 복사해줍니다.
이 두 파일을 WEB-INF/lib에 넣어
주면 환경설정은 끝이 납니다.
환경설정(2)
코드 내에서 다음과 같이 해당되는 taglib을
선언한 후 사용할 수 있게 됩니다.
1.Core tag(1)
<c:out>
데이터를 출력할 때 사용
<c:out value="값" escapeXml="boolean"/>
<c:set>
변수를 설정 할 때 사용
<c:set var="변수명" value="값" [scope="영역"] />
set을 통해 객체 멤버 변수 값을 설정 할 수도 음
<c:set target="대상" property=“이름" value="값" />
<c:remove>
set태그로 지정 된 변수를 삭제할 때 사용
<c:remove var="var명" scope="영역" />
<c:catch>
예외메세지를 잡을 때 사용한다.
<c:catch var="변수명">
1.Core tag(2)
<c:if>
조건에 따른 행동을 수행함
<c:if test="조건"> . . . </c:if>
<c:choose>/<c:when>/<c:otherwise>
Switch/if-else 문을 합쳐 놓은 형태
Test>조건
<c:url>
<c:url value="URL" var="변수명", scope="영역">
<c:params>
url에 parameter를 추가해 줄 수 있다.
<c:param name="이름", value="값">
<c:redirect>
지정한 페이지로 redirect해주는 기능을 합니다.
<c:redirect url="URL">
1.Core tag(3)
<c:import>
특정 url결과를 읽어와 현재 위치에 삽입하거나 외부의 자원을 불러올때 사용
<c:import url="URL" var="변수명" scope="영역" charEncoding="캐릭터셋">
<c:foreach>
for,while문과 같은 반복문
<c:forEach var="변수" items="아이템" begin="시작값" end="끝값" step="증가값">
<c:forTokens>
Item속성으로 넘겨받은 문자열을 delims구분자를 통해 나눠준다.
<c:forTokens var="token" items="문자열" delims="구분자">
2.Function tag(1)(EL에서 사용)
${fn:length(~)}
:길이를 반환해준다.
${fn:toUpperCase(~)}
${fn:toLowerCase(~)}
:각각 대소문자로 바꿔준다.
${fn:substring(str1,3,10)}
:str1문자열에서 3~10번째 문자열을 빼서 출력하시오
${fn:substringAfter(str1,str2)}
:str1에서 str2가 나온 이후의 문자열을 출력하시오
${fn:substringbefore(str1,str2)}
:str1에서 str2가 들어간 이전 문자열을 출력하시오
${fn:replace(str1,”a”,”b”)}
:str1에서 a를 b로 바꿔준다.
2.Function tag(2)(EL에서 사용)
${fn:indexOf(str1,str2)}
:str1에서 str2가 포함된 곳의 인덱스를 출력함
${fn:startsWith (str1,”aa”)}
:str1문자열에서 my로 시작 하는가를 boolean으로 알려줌
${fn:endsWith(str1,”aa”)}
:str1이 aa로 끝나는지를 boolean으로 알려줌
${fn:contains(str1,str2)}
:str1에 str2가 포함되는지를 알려줌
${fn:containsIgnoreCase(str1,str2)}
:대소문자 관계없이 str1에 str2가 포함되어 있는지 알려줌
${fn:split (array,’-’)}
:array를 –를 붙여 하나의 문자열로 만들어준다.
3.Database tag
<sql:setDataSource>
:data source를 지정한다.
<sql:setDataSource
{dataSource="dataSource" | url ="jdbc Url“}
driver=“드라이버 클래스명"
user=“DB사용자계정“
password=“DB사용자비밀번호“
var=“Datasource 스펙저장"
scope="{page|request|session|application}"/>
<sql:query>
:query문을 사용할 수 있게 된다. 주로 결과set을 얻을 때 사용
<sql:query sql=“sqlQuery”
var="쿼리 결과 저장"
scope="{page|request|session|application}"
dataSource="dataSource"
maxRows="쿼리결과 포함 최대 행 수 “
startRow="시작 행" />
<sql:dataParam> / <sql:param>
:파라미터를 넘기는 방식은 날짜, 문자열이 있는데 날짜일때
dataParam, 문자열 일때 param을 쓴다.
<sql:dateParam value="value"type="{timestamp|time|date}"/>
<sql:param value="value"/>
<sql:update>
: query를 사용. 주로 적용된 행을 얻을 때 사용
<sql:update sql="sqlUpdate"
dataSource="dataSource"
var="varName"
scope="{page|request|session|application}"/>
4.XML tag
<x:out>
Xpath의 값을 출력을 합니다.
<x:out select="<string>" escapeXml="<true|false>"/>
<x:if>
Xpath의 조건이 맞으면 해당 행동을 합니다.
<x:if select="XPathExpression" var="varName"[scope="{page|request|session|application}"]/>
<x:set>
Scope의 변수에 Xpath의 값을 저장시킴
<x:set var="<string>" select="<string>" scope="<string>"/>
<x:choose> / <x:when> / <x:otherwise>
Xml tag의 if-else 구문, 조건이 맞을 경우 수행
<x:when select="<string>">
<x:otherwise>
<x:choose>
<x:forEach>
반복문을 돌며 작업을 수행합니다.
<x:forEach
var="<string>"
select="<string>"
begin="<int>"
end="<int>"
step="<int>"
varStatus="<string>">
<x:parse>
xml file을 읽어 해당되는 tag로 파싱 시킨다.
<x:parse
var="<string>"
varDom="<string>"
scope="<string>"
scopeDom="<string>"
doc="<string>"
systemId="<string>"
filter="<string>"/>
5.Formatting tag(1)
<fmt:requestEncoding>
요청파라미터에 맞게 캐릭터 인코딩을 지정한다.
<fmt:requestEncoding value="캐릭터셋" />
<fmt:message>
저장한 리소스 번들로 부터 메시지를 읽어와 실행한다
<fmt:bundle basename="번들명"><fmt:message key="키명">
<fmt:setLocale>
국제화 태그들이 사용할 로케일을 지정함
<fmt:setLocale value="언어코드_국가코드" scope="영역" />
<fmt:setBundle>
리소스 번들을 변수로 저장한 후 어디서든지 사용할 수 있게 됨
<fmt:setBundle var="변수명" basename="리소스번들명" />
<fmt:bundle>
사용할 메시지 번들을 지정한다.
<fmt:bundle basename="리소스번들명"> <fmt:message key="키명“>
5.Formatting tag(2)
<fmt:formatNumber>
숫자를 양식에 맞춰 문자열로 변환해줍니다.
<fmt:formatNumber value="숫자값" type="값타입" pattern="패턴"
currentCode="통화코드" currencySymbol="통화심볼"
groupingUsed="boolean" var="변수명" scope="영역" />
<fmt:parseNumber>
문자열을 숫자로 변환해 줍니다.
<fmt:parseNumber value="값" type="값타입" pattern="패턴"
parseLocale="통화코드" integerOnly="boolean"
var="변수명" scope="영역 />
5.Formatting tag(3)
<fmt:formatDate>
날짜정보를 담고 있는 객체를 포매팅하여 출력한다.
<fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일"
timeStyle="시간스타일" pattern="패턴" timeZone="타임존"
var="변수명" scope="영역" />
dateStyle>time / date
timeStyle>default / short / medium / long / full
<fmt:parseDate>
문자열로 된 날짜 / 시간 값을 java.util.Date()로 파싱한다.
<fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일" timeStyle="시간스타
일" pattern="패턴" timeZone="타임존" parseLocale="로케일" var="변수명" scope="영역" />
<fmt:timeZone>
문자열로 된 날짜 / 시간 값을
java.util.Date()로 파싱한다.
<fmt:timeZone value=“이름">
<fmt:formatDate .. />
<fmt:setTimeZone>
액션태그가 실행된 뒤 이후의 모든
코드에 영향을 미친다.
<fmt:setTimeZone value="타임존명">
<fmt:formatDate . . . />

More Related Content

What's hot

Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Javajigi Jaesung
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Minchul Jung
 
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈jihoon kim
 
20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용Junyi Song
 
Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4성일 한
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나종현 김
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.jsHeeJung Hwang
 
02주차 ddl- db를 만들자
02주차 ddl- db를 만들자02주차 ddl- db를 만들자
02주차 ddl- db를 만들자Yoonwhan Lee
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나종민 김
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개beom kyun choi
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기경원 이
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpaTaesin Um
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육 Rjs Ryu
 

What's hot (20)

Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
Scala, Spring-Boot, JPA의 불편하면서도 즐거운 동거
 
Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작Ch1 일래스틱서치 클러스터 시작
Ch1 일래스틱서치 클러스터 시작
 
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
제2회 한글형태소분석기 기술 세니마 발표(solr 활용 입문) by 김지훈
 
20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용20151022 elasticsearch 적용및활용_송준이_sds발표용
20151022 elasticsearch 적용및활용_송준이_sds발표용
 
Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4
 
엘라스틱 서치 세미나
엘라스틱 서치 세미나엘라스틱 서치 세미나
엘라스틱 서치 세미나
 
MySQL 기초
MySQL 기초MySQL 기초
MySQL 기초
 
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
 
02주차 ddl- db를 만들자
02주차 ddl- db를 만들자02주차 ddl- db를 만들자
02주차 ddl- db를 만들자
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
Hive begins
Hive beginsHive begins
Hive begins
 
6.테이블만들기
6.테이블만들기6.테이블만들기
6.테이블만들기
 
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기Jpa 잘 (하는 척) 하기
Jpa 잘 (하는 척) 하기
 
Mymysql basic sql
Mymysql basic sqlMymysql basic sql
Mymysql basic sql
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
elasticsearch
elasticsearchelasticsearch
elasticsearch
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육
 

Viewers also liked

داده کاوی قرآنی
داده کاوی قرآنیداده کاوی قرآنی
داده کاوی قرآنیAli Dalili
 
Quran on Karbala
Quran on KarbalaQuran on Karbala
Quran on KarbalaAli Dalili
 
مقابلة شحصية
مقابلة شحصيةمقابلة شحصية
مقابلة شحصيةDoaa Farag
 
Business Process Managmenet & Intelligent BPM Suites
Business Process Managmenet & Intelligent BPM SuitesBusiness Process Managmenet & Intelligent BPM Suites
Business Process Managmenet & Intelligent BPM Suitesshyjusr
 
Prep 1 "Great Wonderful World" Poem
Prep 1 "Great Wonderful World" PoemPrep 1 "Great Wonderful World" Poem
Prep 1 "Great Wonderful World" PoemSawsan Ali
 
How Online Predators Threaten Our Children
How Online Predators Threaten Our ChildrenHow Online Predators Threaten Our Children
How Online Predators Threaten Our ChildrenTeenSafe
 
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسى
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسىأدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسى
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسىProf. Tafida Ghanem
 
Budi bahasa
Budi bahasaBudi bahasa
Budi bahasaInbmy
 
تكتيكات الإجابة عن سؤال مقابلة العمل حدثني عن نفسك Tell Me About Yourself
تكتيكات الإجابة عن سؤال مقابلة العمل  حدثني عن نفسك Tell Me About Yourselfتكتيكات الإجابة عن سؤال مقابلة العمل  حدثني عن نفسك Tell Me About Yourself
تكتيكات الإجابة عن سؤال مقابلة العمل حدثني عن نفسك Tell Me About YourselfAiman Nazaal
 
مرض السكري والدواء
مرض السكري والدواءمرض السكري والدواء
مرض السكري والدواءmunaoqal
 
Materials in orthodontics /certified fixed orthodontic courses by Indian den...
Materials in orthodontics  /certified fixed orthodontic courses by Indian den...Materials in orthodontics  /certified fixed orthodontic courses by Indian den...
Materials in orthodontics /certified fixed orthodontic courses by Indian den...Indian dental academy
 
10 خطوات للتخلص من إدمان الأفلام الإباحية
10 خطوات للتخلص من إدمان الأفلام الإباحية10 خطوات للتخلص من إدمان الأفلام الإباحية
10 خطوات للتخلص من إدمان الأفلام الإباحيةMohammad Ihmeidan
 
الترويج الذاتي على منصات الإعلام الاجتماعي
الترويج الذاتي على منصات الإعلام الاجتماعيالترويج الذاتي على منصات الإعلام الاجتماعي
الترويج الذاتي على منصات الإعلام الاجتماعيDigiArabs
 

Viewers also liked (17)

داده کاوی قرآنی
داده کاوی قرآنیداده کاوی قرآنی
داده کاوی قرآنی
 
Pesawat perang dunia ke 1
Pesawat perang dunia ke 1Pesawat perang dunia ke 1
Pesawat perang dunia ke 1
 
Quran on Karbala
Quran on KarbalaQuran on Karbala
Quran on Karbala
 
مقابلة شحصية
مقابلة شحصيةمقابلة شحصية
مقابلة شحصية
 
tmorgan_641_w7
tmorgan_641_w7tmorgan_641_w7
tmorgan_641_w7
 
Business Process Managmenet & Intelligent BPM Suites
Business Process Managmenet & Intelligent BPM SuitesBusiness Process Managmenet & Intelligent BPM Suites
Business Process Managmenet & Intelligent BPM Suites
 
Prep 1 "Great Wonderful World" Poem
Prep 1 "Great Wonderful World" PoemPrep 1 "Great Wonderful World" Poem
Prep 1 "Great Wonderful World" Poem
 
How Online Predators Threaten Our Children
How Online Predators Threaten Our ChildrenHow Online Predators Threaten Our Children
How Online Predators Threaten Our Children
 
الدوري 3
الدوري  3الدوري  3
الدوري 3
 
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسى
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسىأدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسى
أدوار المعلم فى تخطيط عملية التدريس فى بداية العام الدراسى
 
Budi bahasa
Budi bahasaBudi bahasa
Budi bahasa
 
تكتيكات الإجابة عن سؤال مقابلة العمل حدثني عن نفسك Tell Me About Yourself
تكتيكات الإجابة عن سؤال مقابلة العمل  حدثني عن نفسك Tell Me About Yourselfتكتيكات الإجابة عن سؤال مقابلة العمل  حدثني عن نفسك Tell Me About Yourself
تكتيكات الإجابة عن سؤال مقابلة العمل حدثني عن نفسك Tell Me About Yourself
 
مرض السكري والدواء
مرض السكري والدواءمرض السكري والدواء
مرض السكري والدواء
 
Stainless steel
Stainless steelStainless steel
Stainless steel
 
Materials in orthodontics /certified fixed orthodontic courses by Indian den...
Materials in orthodontics  /certified fixed orthodontic courses by Indian den...Materials in orthodontics  /certified fixed orthodontic courses by Indian den...
Materials in orthodontics /certified fixed orthodontic courses by Indian den...
 
10 خطوات للتخلص من إدمان الأفلام الإباحية
10 خطوات للتخلص من إدمان الأفلام الإباحية10 خطوات للتخلص من إدمان الأفلام الإباحية
10 خطوات للتخلص من إدمان الأفلام الإباحية
 
الترويج الذاتي على منصات الإعلام الاجتماعي
الترويج الذاتي على منصات الإعلام الاجتماعيالترويج الذاتي على منصات الإعلام الاجتماعي
الترويج الذاتي على منصات الإعلام الاجتماعي
 

Similar to Jstl_GETCHA_HANJUNG

overview of spring4
overview of spring4overview of spring4
overview of spring4Arawn Park
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술NAVER D2
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis BasicJi-Woong Choi
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개흥배 최
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPTJinKyoungHeo
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)DK Lee
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
E government framework
E government frameworkE government framework
E government frameworkHyungKuIm
 
02.실행환경 교육교재(데이터처리)
02.실행환경 교육교재(데이터처리)02.실행환경 교육교재(데이터처리)
02.실행환경 교육교재(데이터처리)Hankyo
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicknight1128
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6Ji-Woong Choi
 

Similar to Jstl_GETCHA_HANJUNG (20)

overview of spring4
overview of spring4overview of spring4
overview of spring4
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
Spark sql
Spark sqlSpark sql
Spark sql
 
Scala for play
Scala for playScala for play
Scala for play
 
[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술[162] jpa와 모던 자바 데이터 저장 기술
[162] jpa와 모던 자바 데이터 저장 기술
 
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
[국비지원교육/재직자/실업자환급교육/IT실무학원추천/스프링교육추천]#5.스프링프레임워크 & 마이바티스 (Spring Framework, M...
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic
 
Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개Mongodb2.2와 2.4의 신 기능 소개
Mongodb2.2와 2.4의 신 기능 소개
 
Jdk 7 3-nio2
Jdk 7 3-nio2Jdk 7 3-nio2
Jdk 7 3-nio2
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)5.Spring IoC&DI(DI와 관련된 어노테이션)
5.Spring IoC&DI(DI와 관련된 어노테이션)
 
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
#33.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_스프링프레임워크 강좌, 재직자환급교육,실업자국비지원...
 
E government framework
E government frameworkE government framework
E government framework
 
Java(1/4)
Java(1/4)Java(1/4)
Java(1/4)
 
02.실행환경 교육교재(데이터처리)
02.실행환경 교육교재(데이터처리)02.실행환경 교육교재(데이터처리)
02.실행환경 교육교재(데이터처리)
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
 

Jstl_GETCHA_HANJUNG

  • 1. JSTL (JSP STANDARD TAG LIBRARY) Introduction 2016_09_07 한정
  • 2. JSTL은 무엇인가? 자바 코드에 익숙하지 않은 개발자들도 Custom tag를 통해 jsp 개발을 할 수 있다. Custom tag 중 널리 쓰이는 것을 모아 심사를 거쳐 표준으로 만든 라이브러리 모음이다. 코드의 가독성, 재사용성이 향상되어 널리 쓰이고 있다.
  • 3. JSTL을 가지고 하는 일 태그종류 prefix 설명 URI Core c 변수선언 / 출력 / 조건식 등 실행흐름제어 http://java.sun.com/ jsp/jstl/core Formatting fmt 숫자, 날짜, 시간을 포메팅 함 http://java.sun.com/ jsp/jstl/fmt Database sql DB의 데이터 CRUD기능을 제공 http://java.sun.com/j sp/jstl/sql XML x Xml문서 처리 http://java.sun.com/j sp/jstl/xml Function fn 문자열에 제공하는 함수, EL(Expression Language)에서 사용 http://java.sun.com/j sp/jstl/functions
  • 4. 환경설정(1) http://tomcat.apache.org/taglibs/standard/ 에서 버전을 선택해 download를 눌러줍니다. Binaries/를 선택한 후 버전에 맞는 .zip파일을 받아 압축을 풀어줍니다. 파일내에 lib 파일에서 두개의 파일을 복사해줍니다. 이 두 파일을 WEB-INF/lib에 넣어 주면 환경설정은 끝이 납니다.
  • 5. 환경설정(2) 코드 내에서 다음과 같이 해당되는 taglib을 선언한 후 사용할 수 있게 됩니다.
  • 6. 1.Core tag(1) <c:out> 데이터를 출력할 때 사용 <c:out value="값" escapeXml="boolean"/> <c:set> 변수를 설정 할 때 사용 <c:set var="변수명" value="값" [scope="영역"] /> set을 통해 객체 멤버 변수 값을 설정 할 수도 음 <c:set target="대상" property=“이름" value="값" /> <c:remove> set태그로 지정 된 변수를 삭제할 때 사용 <c:remove var="var명" scope="영역" /> <c:catch> 예외메세지를 잡을 때 사용한다. <c:catch var="변수명">
  • 7. 1.Core tag(2) <c:if> 조건에 따른 행동을 수행함 <c:if test="조건"> . . . </c:if> <c:choose>/<c:when>/<c:otherwise> Switch/if-else 문을 합쳐 놓은 형태 Test>조건 <c:url> <c:url value="URL" var="변수명", scope="영역"> <c:params> url에 parameter를 추가해 줄 수 있다. <c:param name="이름", value="값"> <c:redirect> 지정한 페이지로 redirect해주는 기능을 합니다. <c:redirect url="URL">
  • 8. 1.Core tag(3) <c:import> 특정 url결과를 읽어와 현재 위치에 삽입하거나 외부의 자원을 불러올때 사용 <c:import url="URL" var="변수명" scope="영역" charEncoding="캐릭터셋"> <c:foreach> for,while문과 같은 반복문 <c:forEach var="변수" items="아이템" begin="시작값" end="끝값" step="증가값"> <c:forTokens> Item속성으로 넘겨받은 문자열을 delims구분자를 통해 나눠준다. <c:forTokens var="token" items="문자열" delims="구분자">
  • 9. 2.Function tag(1)(EL에서 사용) ${fn:length(~)} :길이를 반환해준다. ${fn:toUpperCase(~)} ${fn:toLowerCase(~)} :각각 대소문자로 바꿔준다. ${fn:substring(str1,3,10)} :str1문자열에서 3~10번째 문자열을 빼서 출력하시오 ${fn:substringAfter(str1,str2)} :str1에서 str2가 나온 이후의 문자열을 출력하시오 ${fn:substringbefore(str1,str2)} :str1에서 str2가 들어간 이전 문자열을 출력하시오 ${fn:replace(str1,”a”,”b”)} :str1에서 a를 b로 바꿔준다.
  • 10. 2.Function tag(2)(EL에서 사용) ${fn:indexOf(str1,str2)} :str1에서 str2가 포함된 곳의 인덱스를 출력함 ${fn:startsWith (str1,”aa”)} :str1문자열에서 my로 시작 하는가를 boolean으로 알려줌 ${fn:endsWith(str1,”aa”)} :str1이 aa로 끝나는지를 boolean으로 알려줌 ${fn:contains(str1,str2)} :str1에 str2가 포함되는지를 알려줌 ${fn:containsIgnoreCase(str1,str2)} :대소문자 관계없이 str1에 str2가 포함되어 있는지 알려줌 ${fn:split (array,’-’)} :array를 –를 붙여 하나의 문자열로 만들어준다.
  • 11. 3.Database tag <sql:setDataSource> :data source를 지정한다. <sql:setDataSource {dataSource="dataSource" | url ="jdbc Url“} driver=“드라이버 클래스명" user=“DB사용자계정“ password=“DB사용자비밀번호“ var=“Datasource 스펙저장" scope="{page|request|session|application}"/> <sql:query> :query문을 사용할 수 있게 된다. 주로 결과set을 얻을 때 사용 <sql:query sql=“sqlQuery” var="쿼리 결과 저장" scope="{page|request|session|application}" dataSource="dataSource" maxRows="쿼리결과 포함 최대 행 수 “ startRow="시작 행" /> <sql:dataParam> / <sql:param> :파라미터를 넘기는 방식은 날짜, 문자열이 있는데 날짜일때 dataParam, 문자열 일때 param을 쓴다. <sql:dateParam value="value"type="{timestamp|time|date}"/> <sql:param value="value"/> <sql:update> : query를 사용. 주로 적용된 행을 얻을 때 사용 <sql:update sql="sqlUpdate" dataSource="dataSource" var="varName" scope="{page|request|session|application}"/>
  • 12. 4.XML tag <x:out> Xpath의 값을 출력을 합니다. <x:out select="<string>" escapeXml="<true|false>"/> <x:if> Xpath의 조건이 맞으면 해당 행동을 합니다. <x:if select="XPathExpression" var="varName"[scope="{page|request|session|application}"]/> <x:set> Scope의 변수에 Xpath의 값을 저장시킴 <x:set var="<string>" select="<string>" scope="<string>"/> <x:choose> / <x:when> / <x:otherwise> Xml tag의 if-else 구문, 조건이 맞을 경우 수행 <x:when select="<string>"> <x:otherwise> <x:choose> <x:forEach> 반복문을 돌며 작업을 수행합니다. <x:forEach var="<string>" select="<string>" begin="<int>" end="<int>" step="<int>" varStatus="<string>"> <x:parse> xml file을 읽어 해당되는 tag로 파싱 시킨다. <x:parse var="<string>" varDom="<string>" scope="<string>" scopeDom="<string>" doc="<string>" systemId="<string>" filter="<string>"/>
  • 13. 5.Formatting tag(1) <fmt:requestEncoding> 요청파라미터에 맞게 캐릭터 인코딩을 지정한다. <fmt:requestEncoding value="캐릭터셋" /> <fmt:message> 저장한 리소스 번들로 부터 메시지를 읽어와 실행한다 <fmt:bundle basename="번들명"><fmt:message key="키명"> <fmt:setLocale> 국제화 태그들이 사용할 로케일을 지정함 <fmt:setLocale value="언어코드_국가코드" scope="영역" /> <fmt:setBundle> 리소스 번들을 변수로 저장한 후 어디서든지 사용할 수 있게 됨 <fmt:setBundle var="변수명" basename="리소스번들명" /> <fmt:bundle> 사용할 메시지 번들을 지정한다. <fmt:bundle basename="리소스번들명"> <fmt:message key="키명“>
  • 14. 5.Formatting tag(2) <fmt:formatNumber> 숫자를 양식에 맞춰 문자열로 변환해줍니다. <fmt:formatNumber value="숫자값" type="값타입" pattern="패턴" currentCode="통화코드" currencySymbol="통화심볼" groupingUsed="boolean" var="변수명" scope="영역" /> <fmt:parseNumber> 문자열을 숫자로 변환해 줍니다. <fmt:parseNumber value="값" type="값타입" pattern="패턴" parseLocale="통화코드" integerOnly="boolean" var="변수명" scope="영역 />
  • 15. 5.Formatting tag(3) <fmt:formatDate> 날짜정보를 담고 있는 객체를 포매팅하여 출력한다. <fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일" timeStyle="시간스타일" pattern="패턴" timeZone="타임존" var="변수명" scope="영역" /> dateStyle>time / date timeStyle>default / short / medium / long / full <fmt:parseDate> 문자열로 된 날짜 / 시간 값을 java.util.Date()로 파싱한다. <fmt:formatDate value="날짜값" type="타입" dateStyle="날짜스타일" timeStyle="시간스타 일" pattern="패턴" timeZone="타임존" parseLocale="로케일" var="변수명" scope="영역" /> <fmt:timeZone> 문자열로 된 날짜 / 시간 값을 java.util.Date()로 파싱한다. <fmt:timeZone value=“이름"> <fmt:formatDate .. /> <fmt:setTimeZone> 액션태그가 실행된 뒤 이후의 모든 코드에 영향을 미친다. <fmt:setTimeZone value="타임존명"> <fmt:formatDate . . . />