[Jstl] JSP에서 formatNumber 속성 설명
숫자를 표시하는데에 있어 일반적으로 단위별 구분기호를 주는데,
DB에서 바로 불러와 뿌려주면, 구분기호가 표시되지 않습니다.
javascript로 함수로 만들어 적용해도 되지만, jstl에서 지원하는 기능을 통해서
숫자에 구분기호 및 화폐처리 등을 할 수 있는 방안을 살펴봅니다.
아래의 태그 라이브러리(format) fmt를 상단에 선언해줘야합니다.
//Standard Syntax:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
//XML Syntax:
<anyxmlelement xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" />
fmt에서 formatNumber 태그는 숫자에 관련된 포맷 태그입니다.
formatNumber 속성
|속성명|설명|필수여부| |:—:|:—:|:—:| |value|숫자 데이터|Y| |type|표시할 타입 지정(NUMBER, CURRENCY, PERCENT)|N| |pattern|사용자 정의 패턴 지정|N| |currencyCode|ISO 4217 화폐 코드, type 속성이 “currency”일 경우에만 적용됨|N| |currencySymbol|화폐 단위, type 속성이 “currency”일 경우에만 적용됨|N| |groupingUsed|”,”로 구분기호 여부|N| |maxIntegerdigits|화면에 표시할 숫자의 최대 자릿수|N| |minIntegerDigits|화면에 표시할 숫자의 최소 자릿수|N| |maxFractionDigits|화면에 표시할 소수점 이하 숫자의 최대 개수|N| |minFractionDigits|화면에 표시할 소수점 이하 숫자의 최소 개수|N| |var|변환된 숫자 데이터를 문자열로 할당할 변수 생성|N| |scope|var 데이터의 스코프|N|
기본 사용법
<fmt:formatNumber type="number" value="${value}"/>
- groupingUsed 속성
- 구분기호를 표시할건지에 대한 여부
- default 값은 true
예시 :
<c:set var ="numtest" value="100200300400500600"/>
<fmt:formatNumber value="${numtest }" /> <br/>
<fmt:formatNumber value="${numtest }" groupingUsed="false" /> <br/>
결과 :
100,200,300,400,500,600
100200300400500600
화폐 기준 출력
<fmt:formatNumber value="${value} type="currency/>
type 속성에 currency 를 넣으면 화폐 기준으로 출력됩니다.
ISO 4217은 위키백과를 참조하시길 바랍니다.
예시 :
// ISO 4217 currencyCode 속성을 사용한 설정
<fmt:formatNumber value="${value}" type="currency" currencyCode="KRW"/> <br/>
// currencySymbol 속성을 사용한 설정
<fmt:formatNumber value="${value}" type="currency" currencySymbol="$"/> <br/>
결과 :
₩100,200,300,400,500,600
$100,200,300,400,500,600
percentage
- type이 percent일 경우 1을 100%로 출력합니다.
예시:
<c:set var="value" value="1"/>
<fmt:formatNumber value="${value}"/><br/>
<fmt:formatNumber value="${value}" type="percent"/><br/>
결과 :
1
100%
pattern 속성
- 패턴을 지정하여 숫자 출력
- 0과 #으로 숫자를 자리를 지정하여 표현합니다.
- 0은 자리에 수가 없으면 0으로 표시,#은 자리에 수가 없으면 표시하지않습니다.
예시 :
<c:set var="value" value="123.4567"/>
<fmt:formatNumber value="${value}" pattern="0,000.0"/><br />
<fmt:formatNumber value="${value}" pattern="#,###.#"/><br />
결과 :
0,123.5
123.5
소수점 자리 옵션
- minFractionDigits은 최소 소수점 자릿수 표현
- maxFractionDigits 최대 소수점 자릿수 표현(반올림)
예시:
<fmt:formatNumber value="${value}" minFractionDigits="5"/><br />
<fmt:formatNumber value="${value}" maxFractionDigits="2"/><br />
결과:
123.45670
123.46