SMALL

JSTL  날짜 형식 바꾸기 (fmt:parseDate ,fmt:formatDate)

JSTL_API : http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html 

 

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

JSP 상단에 추가해야 하는 태그 라이브러리

 

fmt:parseDate : String 형을 받아서 워하는 포멧으로 자료형을 Date 형태로 변경 시켜 준다.

fmt:formatDate : Date 형을 받아서 원하는 포멧으로 날짜 형태를 변경시켜 준다.

 

ex)

<fmt:parseDate value="${applDt}" var="dateFmt" pattern="yyyyMMdd"/>
<fmt:formatDate value="${dateFmt}" pattern="yyyy-MM-dd"/>

 

20081113 이라는 String 형태의 날짜 데이터가 존재한다고 가정하고

이 String 형태의 날짜를 2008-11-13 으로 변경하고 싶을 경우 위의 예 처럼 사용하면 된다.

그 외에도 2008. 11. 13 이런 식으로도 변경도 가능하다. (자신의 입맛에 맛게 변경하여 사용하도록 하자.)

 

<fmt:parseDate value="${applDt}" var="dateFmt" pattern="yyyyMMdd"/>

 

formatDate 는 Date 형태의 자료형만을 받아 변경시키도록 되어 있다. 즉 String 형태의 자료를 Date 형태로

변환시켜 줘야 할 필요가 있는데 이때 사용하는 태그가 fmt:parseDate 이다.

 

1. value 속성에는 넘어오는 파라메터(변환하고자 하는 String)의 이름을 적고

2. var 에는 fmt:formatDate 에서 사용될 변수 이름을 적어주도록 하자.

3. pattern 에는 value 속성에 들어가는 String 형태의 자료가 어떤 형태로 포멧되어 있는것인지를 지정해야 한다.

   즉, 넘어온 String 형태의 자료가 20081113 과 같이 포멧되어 있는 상태라면 yyyyMMdd 와 같이 적어준다.

   2008-11-13 과 같이 포멧되어 있는 상태라면 yyyy-MM-dd 와 같이 적어주면 된다.

 

<fmt:formatDate value="${dateFmt}" pattern="yyyy-MM-dd"/>

 

1. value 에는 parseDate 에서 var 속성뒤 적은 변수명을 적어주도록 한다.

2. pattern 에는 자신이 원하는 포멧 형식을 적어주면 된다. (yyyy년 MM월 dd일 과 같이도 사용이 가능하다.)


LIST

'JSTL' 카테고리의 다른 글

JSTL 기호,연산 정리 입니다  (0) 2018.02.22
JSTL 숫자포맷 돈단위 콤마 변환  (0) 2018.01.12
게시판 실명 이름 지우기  (0) 2018.01.10
JSTL로 clob형식 자동줄바꿈  (0) 2018.01.09
JSTL 현재요일 출력하기  (0) 2018.01.08
블로그 이미지

SeoHW

,
SMALL

필자는 forEach 안에 또 forEach 안에넣었는데

아래 코드가 정상작동되어

예)홍** 나오게끔  되었지만


${fn:substring(item.member_id,0,1)}

<c:forEach var="item" begin="2" end="${fn:length(item.member_id)}" step="1" varStatus="status">

    *

</c:forEach>


뒤에있는 컬럼들이 안나오게되었습니다


forEach문이 아에 끝나서 그런것같은데


혹시 아는분있으면 리플 부탁드립니다~



LIST
블로그 이미지

SeoHW

,
SMALL

oracle로 clob받아올시 줄 바꿈없이 받아오게된다

그럴때는 

JSTL로

clob 형식 자동줄바꿈 바꾸기

<% pageContext.setAttribute("newLineChar", "\n"); %>

${fn:replace(contentsMemonewLineChar, "<br/>")}


하면 줄바꿈이 된다.

LIST
블로그 이미지

SeoHW

,
SMALL

JSTL 현재요일 출력하기

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


<c:set var="now" value="<%=new java.util.Date() %>"/>

<fmt:formatDate value="${now}" pattern="E" var="today" />



${today} 이와같이 출력시


월요일 - >월

화요일 - >화

수요일 - >수

목요일 - >목

금요일 - >금

토요일 - >토

일요일 - >일


출력 됩니다

LIST
블로그 이미지

SeoHW

,
SMALL
JSTL fmt을 이용한 데이터 가공
JSTL을 사용한 수치 데이터 가공


출처 : http://egloos.zum.com/v3brs/v/1303179

데이타베이스등에서 취득한 수치 데이터를 출력할 때에, 인간이 보기 쉬운 형태에 가공하는 것은 중요합니다.자리수 단락의 콤마를 부가하고 싶은, 소수점 이하의 자리수를 갖추고 싶은, 음수의 경우에는 선두에 「▲」을 붙이고 싶은 등, 데이터를 이용하는 문맥 나름으로 요구는 다양하다는 두입니다.
 이것들은, 대체로 경시되기 십상인 포인트일지도 모릅니다만, 어플리케이션의 최종적인 성과물인 데이터가 얼마나 보기 쉽고, 오해가 없는 것처럼 보일까는, 극단적인 이야기, 최종 사용자에 있어서는 그 어플리케이션을 평가하는 「모든 것」이라도 있습니다.
 단지, 사소한 일이라고 해도, 수치 데이터의 가공은 결코 단순한 조작이 아닙니다.첫머리에서 말한 것처럼, 수치의 표기에는 다양한 패턴이 있고, 또, 나라/지역에 의해도 표기가 다른 케이스가 있습니다(예를 들면, 통화 기호 등).Java 기본API 에는, 이러한 수치의 정형을 간단하게 실시하기 위한java.text.DecimalFormat 클래스가 준비되어 있습니다만, 수치를 정형할 만한 위해(때문에), 하나 하나JSP 페이지에 스크립트 렛을 기술해야 하는 것은, 너무 바람직한 일이 아닙니다(가독성이나 보수성을 고려했을 경우,JSP 페이지에서는 가능한 한 스크립팅 요소를 이용해야 하는 것이 아닙니다).
 그러나,JSTL (JSP Standard TagLibrary )의i18n 태그 라이브러리를 이용하는 것으로, 이러한 정형적인 수치 가공의 논리를 스크리프트레스로 지정할 수 있습니다.이하에,i18n 태그 라이브러리를 사용한 간단한 예를 봅시다.
formatNumber.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber value="17005" type="CURRENCY" groupingUsed="true" />
 <fmt:formatNumber> 요소는,value 속성으로 지정된 값을, 그 외의 속성으로 지정된 양식에 따라서 가공해, 결과를 출력합니다(주) .위의 예의 경우,type 속성이CURRENCY (통화)이므로 통화 기호를 수치의 선두에,groupingUsed 속성이true 그래서1000 의 단위에 자리수 단락 기호를, 각각 부여합니다.즉, 위의 용례는 결과적으로 이하와 같은 출력을 생성합니다.
  ₩17,005
주:가공의 대상이 되는 값은,value 속성 대신에,<fmt:formatNumber> 요소 부하의 텍스트(본체)로서 지정하는 것도 가능합니다.고정치, 또는 식 언어(Expression Language )(으)로 표현할 수 있는 값은value 속성으로, 다른 태그 라이브러리에 의한 출력 결과를 이용하고 싶은 경우에는, 부하의 텍스트로서 지정하는 것이 통례입니다.덧붙여 가공 결과는 그대로 출력하는 것이 아니라,var 속성을 지정하는 것으로 지정된 변수에 격납하는 것도 가능합니다(scope 속성으로 스코프의 지정도 가능).
 그 외에도,<fmt:formatNumber> 요소에는 다양한 속성이 준비되어 있습니다.이하에 주요한 속성을 모아 두기로 합시다.
<fmt:formatNumber> 요소의 주된 속성
속성개요
type데이터형(NUMBER |CURRENCY |PERCENT )
currencyCode통화 코드(JPY |USD 등)
currencySymbol통화 기호( ,$ 등)
groupingUsed자리수 단락 기호를 사용할까(true |false )
maxIntegerDigits정수 부분의 최대 자리수
minIntegerDigits정수 부분의 최소 자리수
maxFractionDigits소수 부분의 최대 자리수
minFractionDigits소수 부분의 최소 자리수
 max /minIntegerDigits (이)나max /minFractionDigits 속성을 지정했을 경우에는, 수치의 출력 자리수를 갖출 수 있습니다.max ~속성의 지정치를 출력 자리수가 넘었을 경우에는 자동적으로 잘라서 버림을 하고,min ~속성의 지정치에 출력 자리수가 못 미친 경우에는,0 하지만 보완됩니다.
  <fmt:formatNumber value="234.5678" groupingUsed="true"
maxIntegerDigits="4" maxFractionDigits="2"
minIntegerDigits="4" minFractionDigits="2" />
 즉, 상기의 예에서는, 이하와 같은 결과가 됩니다.
  0,234.57
 currencyCode ,currencySymbol 속성은,type 속성이CURRENCY (통화)의 경우에게만 유효합니다.통상, 통화 기호는 현재의 로케일(지역) 정보에 따라서 정해집니다만(주) , 개개의 출력 단위로 지정하고 싶다고 하는 경우에는, 이러한 속성으로 설정할 필요가 있습니다.
  <fmt:formatNumber value="170" type="CURRENCY" currencySymbol=" £" />
 즉, 상기의 예에서는, 이하와 같은 결과가 됩니다
   £170
주:로케일 정보는, 디폴트로 서버·디폴트의 지역 설정에 따릅니다만, 어플리케이션 단위, 페이지 단위로, 각각 지정할 수도 있습니다.로케일 설정의 상세한 것에 대하여는, 「 다국어를 지원하는 사이트 구축(JSTL편) 」(을)를 참조.
 이상과 같은 속성을 이용하는 것으로 대개의 표기는 실현될 수 있습니다만, 때로는, 보다 복잡한 서식을 지정하고 싶다고 하는 케이스가 있을지도 모릅니다.그러한 경우에는,pattern 속성으로 커스텀의 서식 문자열을 지정하는 것도 가능합니다.예를 들면, 이하는, 주어진 수치가 정수일까 음수일까에 의해서, 다른 서식을 지정합니다.
<fmt:formatNumber value="234.3" pattern="△#,##0.00; ▼#,##0.00" /><br/>
<fmt:formatNumber value="-1234.56" pattern="△#,##0.00; ▼#,##0.00" />
 상기의 예는, 이하와 같은 결과가 됩니다.
△234.30
▼1,234.56
 이것들은, 그저 일례입니다만,pattern 속성에서는 이하와 같은 서식 기술자를 조합하는 것으로, 다양한 패턴을 표현할 수 있습니다.마지막으로,pattern 속성으로 이용 가능한 패턴 기술아이를 두기로 하겠습니다.
pattern 속성으로 이용 가능한 서식 기술자
서식 기술자개요
0수치(제로에서도 표시)
#수치(제로는 표시하지 않는다)
-마이너스 기호
,그룹 단락
;정부 서브 패턴의 단락
%퍼센트(1/100 )
u2030파? 르(1/1000 )
E과학 표기법
 
 
 
 
JSTL을 사용한 날짜 데이터 가공
JSTL을 사용한 수치 데이터 가공 」에서는,JSTL 의i18n 태그 라이브러리를 이용하는 것으로 수치 데이터를 다양한 패턴에 정형하는 방법에 대해 소개했습니다.본TIPS 그럼, 같은i18n 태그 라이브러리를 이용하고, 일자 데이터를 가공하는 방법에 대해 소개하기로 합시다.
 일자 데이터에는, 수치 데이터 이상으로 표기의 패턴(일본이 달력/서기,YYYY 년MM 월DD 일,YYYY/MM/DD ,YY-MM-DD 등)이 존재하고, 나라/지역에 의해도 표기 룰이 다른 경우가 있습니다.Java 기본API 에는, 이러한 일자의 정형을 행하기 위한 전용의java.text.SimpleDateFormat 클래스가 준비되어 있습니다만, 일자를 정형할 만한 유익의 정형적인 조작에, 하나 하나 스크립트 렛을 기술해야 하는 것은 귀찮습니다.그러나,<fmt:formatDate> 요소를 이용하는 것으로, 필요한 파라미터를 속성치로서 지정하는 것만으로 스크리프트레스에 일자 가공을 실현할 수 있습니다.이하에,<fmt:formatDate> 요소를 이용한 간단한 용례를 보기로 합시다.
formatDate.jsp
<%@ page contentType="text/html;charset=euc-kr" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<jsp:useBean id="today" class="java.util.Date" />
<fmt:formatDate value="${today}" type="DATE" dateStyle="FULL" />
 <fmt:formatDate> 요소는,value 속성으로 지정된 값을, 그 외 속성으로 지정된 양식에 따라서 가공해, 결과를 출력합니다(주) .위의 예의 경우,type 속성이DATE (일자)이므로 일자 부분만을,dateStyle 속성이FULL 그래서 제일 긴 형식에서, 출력합니다.즉, 위의 용례는 결과적으로 이하와 같은 출력을 생성합니다.
주:가공의 대상이 되는 일자는,value 속성 대신에,<fmt:formatDate> 요소 부하의 텍스트(본체)로서 지정하는 것도 가능합니다.고정치, 또는 식 언어(Expression Language )(으)로 표현할 수 있는 값은value 속성으로, 다른 태그 라이브러리에 의한 출력 결과를 이용하고 싶은 경우에는, 부하의 텍스트로서 지정하는 것이 통례입니다.덧붙여 가공 결과는 그대로 출력하는 것이 아니라,var 속성을 지정하는 것으로 지정된 변수에 격납하는 것도 가능합니다(scope 속성으로 스코프의 지정도 가능). 

2006년 6월 28일 수요일
 그 외에도,<fmt:formatDate> 요소에는 다양한 속성이 준비되어 있습니다.이하에 주요한 속성을 모아 두기로 합시다.
<fmt:formatNumber> 요소의 주된 속성
속성개요
type데이터형(DATE |TIME |BOTH )
dateStyle일자 스타일(FULL |LONG |MEDIUM |SHORT |DEFAULT )
timeStyle시각 스타일(FULL |LONG |MEDIUM |SHORT |DEFAULT )
timeZone타임 존(JST 등.디폴트는 시스템·디폴트)
 type 속성에 의해서, 표시 대상을 일자만, 시각만, 일자·시각 쌍방의 어느쪽이든으로부터 선택할 수 있습니다.dateStyle ,timeStyle 속성은, 일자·시각 부분 각각 붙고, 어떠한 스타일 형식에서 표시하는지를 선택합니다.일반적으로는, 이것들 속성의 지정만으로도 대부분의 용도를 조달할 수 있을 것입니다만, 때로는, 보다 복잡한 서식을 지정하고 싶다고 하는 케이스가 있을지도 모릅니다.그러한 경우에는,pattern 속성으로 커스텀의 서식 문자열을 지정하는 것도 가능합니다.예를 들면, 이하와 같은 사용법을 합니다.
<fmt:formatDate value="${today}" type="DATE" pattern="yyyy년MM월dd일(E) KK시mm분ss초" />
 이 서식 문자열의 결과는 이하대로입니다.
2006년06월28일(수) 오후 01시58분26초
 상기는 그저 일례입니다만,pattern 속성에서는 이하와 같은 서식 기술자를 조합하는 것으로, 다양한 패턴을 표현할 수 있습니다.마지막으로,pattern 속성으로 이용 가능한 패턴 기술아이를 두기로 하겠습니다.
pattern 속성으로 이용 가능한 서식 기술자
서식 기술자개요가공예
G기원AD
y2004;04
MSeptenber; Sep; 09
d달에 있어서의 날12
E요일Friday; Fri
w해에 있어서의 주10
W달에 있어서의 주1
D해에 있어서의 날270
F달에 있어서의 요일6
a오전/오후AM
H때(0 ~23 )11
k때(1 ~24 )11
K때(0 ~11 )3
h때(1 ~12 )12
m59
s37
S? 리초420
z타임 존Pacific Standard Time; PST; GMT-08:00
Z타임 존-800


LIST
블로그 이미지

SeoHW

,