JSP
[JSP]포매팅 태그 라이브러리
dev-in-daily-life
2024. 8. 15. 21:18
반응형
- JSTL 포매팅 라이브러리를 사용하면 쉽게 원하는 형태로 숫자나 문자열을 표시할 수 있다.
포매팅 태그 라이브러리 종류
| 분류 | 태그 | 설명 |
| 포매팅 | <fmt:timeZone> <fmt:setTimeZone> |
둘 다 지정한 국가의 시간을 지정하는 태그이다. <fmt:timeZone> 태그의 경우 태그를 열고 닫는 영역 안에서만 적용된다는 차이점이 있다. |
| <fmt:formatNumber> | 표시할 숫자의 형식을 지정한다. | |
| <fmt:formatDate> | 지정한 형식의 날짜를 표시한다. |
- 각각의 포매팅 태그 라이브러리들은 다음 표 처럼 상세한 설정을 위해 여러 가지 속성들을 가진다.
<formatNumber> 태그의 여러 가지 속성
| 속성 | 설명 |
| vlaue | 출력될 숫자를 지정한다. |
| type | 출력된 타입을 지정한다. percent인 경우 %, number인 경우 숫자, currency인 경우 통화 형식으로 출력한다. |
| dateStyle | 날짜의 출력 형식을 지정한다. DateFormat 클래스의 full, long, medium, short 등이 지정되어 있다. |
| groupingUsed | 콤마(,) 등 기호로 구분 여부를 지정한다. 이 속성이 true 이면 50000이 50,000으로표시된다. 기본값은 true이다. |
| currencyCode | 통화 코드를 지정한다. 한국 원화는 KRW이다. |
| currencySymbol | 통화를 표시할 때 사용할 기호를 표시한다. |
| var | <formatNumber> 태그 결과를 저장할 변수 이름을 지정한다. |
| scope | 변수의 접근 범위를 지정한다. |
| pattern | 숫자가 출력될 양식을 지정한다. 자바의 DecimalFormat 클래스에 정의된 형식을 따른다. |
<formatDate> 태그의 여러 가지 속성
| 속성 | 설명 |
| vlaue | 출력될 숫자를 지정한다. |
| type | 출력된 타입을 지정한다. percent인 경우 %, number인 경우 숫자, currency인 경우 통화 형식으로 출력한다. |
| dateStyle | 날짜의 출력 형식을 지정한다. DateFormat 클래스의 full, long, medium, short 등이 지정되어 있다. |
| groupingUsed | 콤마(,) 등 기호로 구분 여부를 지정한다. 이 속성이 true 이면 50000이 50,000으로표시된다. 기본값은 true이다. |
| currencyCode | 통화 코드를 지정한다. 한국 원화는 KRW이다. |
| currencySymbol | 통화를 표시할 때 사용할 기호를 표시한다. |
| var | <formatNumber> 태그 결과를 저장할 변수 이름을 지정한다. |
| scope | 변수의 접근 범위를 지정한다. |
| pattern | 숫자가 출력될 양식을 지정한다. 자바의 DecimalFormat 클래스에 정의된 형식을 따른다. |
<formatDate> 태그의 여러 가지 속성
| 속성 | 설명 |
| value | 포맷될 날짜를 지정한다. |
| type | 포매팅할 타입을 지정한다. date인 경우 날짜만, time인 경우 시간만, both 인 경우 모두 지정한다. |
| dateStyle | 날짜의 출력형식을 지정한다. DateFormat 클래스의 full, long, medium, short 등이 지정되어 있다. |
| timeStyle | 시간 출력 형식을 지정한다. 자바 클래스 DateFormat에 정의된 형식을 사용한다. |
| pattern | 직접 출력 형식을 지정한다. 자바클래스 SimpleDateFormat에지정된 패턴을 사용한다. |
| timeZone | 특정 나라 시간대로 시간을 설정한다. |
- 포매팅 태그 라이브러리를 사용하여 여러 가지 숫자와 날짜 정보를 표시해 보자.
* format1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.Date"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%
request.setCharacterEncoding("utf-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>포매팅 태그 라이브러리 </title>
</head>
<body>
<h2>fmt의 number 태그를이용한 숫자 포맷팅 예제.</h2>
<c:set var="price" value="10000000" />
<fmt:formatNumber value="${price }" type="number" var="priceNumber" />
통화로 표현 시 : <fmt:formatNumber type="currency" currencySymbol="₩" value = "${price }" groupingUsed="true" /><br>
퍼센트로 표현 시: <fmt:formatNumber type="percent" value="${price }" groupingUsed="true" /><br>
일반 숫자로 표현 시 : ${priceNumber }<br><br>
<h2>formatDate 예제</h2>
<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="YYYY-MM-dd :hh:mm:ss" /><br>
<br><br>
한국 현재 시각 : <fmt:formatDate value="${now }" type="both" dateStyle="full" timeStyle="full" /><br><br>
<fmt:timeZone value="America/New York" >
뉴욕 현재 시각 : <fmt:formatDate value="${now }" type="both" dateStyle="full" timeStyle="full" /><br>
</fmt:timeZone>
</body>
</html>

반응형