[JSTL] fmt 라이브러리 사용 예제 (숫자 포맷, 날짜 포맷)

2010. 9. 1. 11:03라이브러리/Jstl

<?xml version="1.0" encoding="EUC-KR" ?>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="java.util.Date"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
<title>숫자 포맷에 관련된 태그에 대해서 알아봅니다.</title>
</head>
<body>    
<%--
    formatNumber 태그
    value : 포맷에 맞춰 출력될 숫자
    type : 어떤 포맷으로 출력할 지 결정.. number 포맷일 때 숫자, percent 일 경우, currency 일 경우엔
            통화 형식이 됨.
    groupingUsed : ,(콤마) 와 같이 수치를 구분할 때 기호를 사용할 지 여부 결정 속성. true 일 경우엔
                사용되며, false 일 경우 미사용됨.. 디폴트 true
    currencyCode : 통화 코드 지정. 표준 코드집이 있으며 한국은 KRW 임. -- 조건 type 속성이 currency 일
                때만 적용됨.
    currencySymbol : 통화 기호 설정 속성.. 당근 type 이 currency 일때만 사용 가능.
    var : 변수명
    scope : 말안하겠음.
    pattern : 직접 숫자가 출력되는 양식 지정함. java.text.DecimalFormat 클래스에 정의되어진 패턴을
            따름..
--%>
    <h2>fmt 의 number 태그를 이용한 숫자 포맷팅 예제.</h2>
    <c:set var="price" value="10000" />
    <fmt:formatNumber value="${price }" type="number" var="numberType" />
    통화로 표현 시 : <fmt:formatNumber type="currency" currencySymbol="₩"
                    value="${price }"  /><br />
    퍼센트로 표현 시 : <fmt:formatNumber value="${price }" type="percent"
                    groupingUsed="false" /><br />
    일반 숫자로 표현 시 : ${numberType }
   
    <h2>formatDate 에 대해서 알아봅니다.<br />
    <%--
        formatDate 태그 : 시간과 날짜 표시 형식을 특정 포맷이나 패턴으로 설정하는 태그입니다.
        속성들:::
        value="포맷될 데이터"
        type="포맷팅할 타입 지정.. date인 경우 날짜만, time인경우 시간만,
           

both인 경우엔 모두를 포맷합니다."

        dateStyle="날짜의 출력 스타일 지정..DateFormat 클래스의 full, long, medium, short 등이
            정의되어 있음.."
        timeStyle="시간의 출력 스타일 지정.. DateFormat 클래스에 정의된 스타일 사용함."
        pattern="직접 출력 스타일 지정..SimpleDateFormat 에 지정된 패턴 이용함"
        var="설명 불필요"
        scope="알아서 잘"
        timeZone="특정 나라의 시간대로 시간을 세팅함.. setTimeZone 속성에 TimeZone 객체 명시함.."
    --%>
    <c:set var="now" value="<%= new Date() %>" />
    <fmt:formatDate value="${now }" type="date" dateStyle="full" /><br />
    <fmt:formatDate value="${now }" type="date" dateStyle="short" /><br />
    <fmt:formatDate value="${now }" type="time" /><br />
    <fmt:formatDate value="${now }" type="both" dateStyle="full"
        timeStyle="full" /><br />
    <fmt:formatDate value="${now }" pattern="z a h:mm" /><br />
   
    <!-- 이번엔 특정 시간대로 타임존 세팅해서 포맷팅 출력해봅니다. -->
    <fmt:formatDate value="${now }" type="both" dateStyle="full" timeStyle="full" /><br />
    <fmt:timeZone value="Asia/Kamchatka">
        <fmt:formatDate value="${now }" type="both" dateStyle="full" timeStyle="full" /><br />
    </fmt:timeZone>
    </h2>
</body>
</html>


====================================================================================================================================

1. 숫자 포맷 변환

 

라이브러리로 아래와 같이 추가

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

 

숫자1 : <fmt:formatNumber value="123456789" type="number"/><br>
숫자2 : <fmt:formatNumber value="1000" type="currency" currencySymbol="₩"/><br>
숫자3 : <fmt:formatNumber value="0.3" type="percent"/><br>
숫자4 : <fmt:formatNumber value="12345.678" pattern=".00"/><br>

 

 

<결과값>

숫자1 : 123,456,789  <- 기본 천단위 끊어서 표현
숫자2 : ₩ 1,000.00  <- 원표시 붙이고 (,)붙이고 소수점 2개 까지 표현
숫자3 : 30%   <- %로 표현
숫자4 : 12345.68  <- 설정 소수점에서 반올림으로 표현

 

2. 날짜 포맷 변환

라이브러리로 아래와 같이 추가

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


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

'라이브러리 > Jstl' 카테고리의 다른 글

[JSTL] Core Library  (0) 2010.07.05
[JSTL] Core Library (일반태그편)  (0) 2010.07.05
[JSTL] 기초설명 및 세팅  (0) 2010.07.05