ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSTL fmt 태그 사용하기
    JSP 2019. 2. 2. 18:09

    이 글을 보시기 전 참고하시면 좋은 글입니다.
    JSP EL
    JSP JSTL 등록하기
    JSTL core tag 사용하기

    fmt 태그란?

    fmt 태그는 Formatting 태그로 포맷에 관련된 태그입니다.
    fmt 태그를 사용하기 위해서는
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    를 jsp 에 적어주어야 합니다.

    fmt 태그의 종류

    태그명 내용
    requestEncoding value 속성을 통해 지정한 문자 셋으로 변경
    setLocale 통화 기호나 시간 대역을 설정한 지역에 맞게 표시
    timeZone 특정 영역의 시간대를 설정
    setTimeZone 특정 영역의 시간대 설정 정보를 변수에 저장
    bundle basename 속성에 지정된 properties 파일을 읽어옴
    setBundle properties 파일을 읽어와 다양한 영역에서 참조할 수 있게 설정
    message bundle 태그를 통해 저장된 key로 value를 가져온다
    formatNumber 숫자를 특정 양식에 맞추어 출력
    parseNumber 문자열을 숫자 형식으로 변환
    formatDate 날자 정보를 가진 객체(Date)를 특정 형식으로 변호나하여 출력
    parseDate 문자열을 날짜 형식으로 변환하여 출력

    이 태그 중에서 저는 몇가지 태그의 사용법만 소개하겠습니다

    requestEncoding 태그

    request 의 문자셋을 value 속성으로 설정하는 태그입니다.

    사용법

    <fmt:requestEncoding value="문자셋"/>

    예시와 출력 결과

        <form action="setEncoding.jsp" method="post">
            <input type="text" name="name" id="name" />
            <input type="submit" value="전송" />
        </form>

    테스트를 위해서 간단한 폼으로 값을 넘겨봅니다.

    문자셋을 설정하지 않은 경우에는 문자가 깨져서 보입니다.

        <fmt:requestEncoding value="UTF-8"/>
        이름 : <c:out value="${param.name }"/>

    fmt:requestEncoding 태그로 인코딩을 UTF-8로 설정하였습니다.
    글자가 깨지지 않고 나오는 것을 볼 수 있습니다.

    setLocale 태그

    지역 설정을 통해 통화 기호나 시간 대역을 다르게 설정할 수 있습니다.
    한국: ko_kr, 미국: en_us, 일본: ja_jp

    사용법

    <fmt:setLocale value="ko_kr"/>

    formatNumber 태그

    숫자에 관련된 포맷 태그입니다.

    formatNumber 속성

    속성명 설명 필수여부
    value 원하는 표현 방식으로 사용하기 위한 숫자 데이터 Yes
    type 표시할 타입 지정(NUMBER, CURRENCY, PERCENT) No
    pattern 화면에 표현할 데이터 스타일을 지정하며 패턴은 java.text.DecimalFormat 클래스의 포맷 방식을 따름 No
    currencyCode type 속성이 "currency"일 경우 인식할 화폐 단위 No
    currencySymbol type 속성이 "currency"일 경우 표시할 화폐 단위 No
    groupingUsed ',' 와 같은 각 숫자 단위의 구분자 표시 여부 No
    maxIntegerdigits 화면에 표시할 숫자의 최대 자릿수 No
    minIntegerDigits 화면에 표시할 숫자의 최소 자릿수 No
    maxFractionDigits 화면에 표시할 소수점 이하 숫자의 최대 개수 No
    minFractionDigits 화면에 표시할 소수점 이하 숫자의 최소 개수 No
    var 변환된 숫자 데이터를 담을 변수 생성 No

    사용법

    <fmt:formatNumber type="number" value="${숫자}"/>

    예시와 출력 결과

    먼저 테스트를 위해 숫자 값들을 저장합니다.

        <c:set var ="numtest" value="12345789123"/>
        <c:set var ="numtest2" value="1"/>
        <c:set var ="numtest3" value="123.456"/>

    기본적인 숫자 출력

        <fmt:formatNumber value="${numtest }" /> <br/>
        <fmt:formatNumber value="${numtest }" groupingUsed="false" /> <br/>


    groupingUsed 속성은 숫자 단위 구분자 표시 여부를 설정하는 속성으로 default 값은 true 입니다.

    화폐 기준 출력
    <fmt:formatNumber value="${numtest} type="currency/>
    type 속성에 currency 를 넣으면 화폐 기준으로 출력됩니다.
    setLocale 로 지역을 바꿔서 출력해보겠습니다.

        <fmt:formatNumber value="${numtest }" type="currency"/> <br/>
        <fmt:setLocale value="en_us"/>
        <fmt:formatNumber value="${numtest }" type="currency"/> <br/>
        <fmt:setLocale value="ja_jp" />
        <fmt:formatNumber value="${numtest }" type="currency"/> <br/>

    currencySymbol 속성을 통해 화폐 기호도 설정할 수 있습니다.
    <fmt:formatNumber value="${numtest }" type="currency" currencySymbol="#"/>

    퍼센트 출력
    type 속성에 percent를 넣으면 숫자 1을 100% 로 잡고 출력합니다.

        <fmt:formatNumber value="${numtest2 }"/><br/>
        <fmt:formatNumber value="${numtest2 }" type="percent"/><br/>

    패턴을 지정하여 숫자 출력
    0과 #으로 숫자를 자리를 지정하여 표현합니다.
    0은 자리에 수가 없으면 0으로 표시하며

    #은 자리에 수가 없으면 공란으로 표시합니다.

        <fmt:formatNumber value="${numtest3 }"  pattern="0,000.0"/><br />
         <fmt:formatNumber value="${numtest3 }"  pattern="#,###.#"/><br />

    소수점 자리를 표현하는 옵션

        <fmt:formatNumber value="${numtest3 }"  minFractionDigits="5"/><br />
         <fmt:formatNumber value="${numtest3 }"  maxFractionDigits="2"/><br />


    최솟값이 표현할 수 보다 클경우 0으로 표시됩니다.

    formatDate 태그

    날짜나 시간의 포맷 방식을 지정하여 출력하는 태그입니다.

    사용법

    <fmt:formatDate type="time" value="${날짜}"/>

    예시와 출력 결과

    테스트를 위해 Date 객체를 이용하여 날짜 정보를 저장합니다.
    <c:set var="today" value="<%=new java.util.Date() %>"/>

    기본적인 날짜 출력 입니다.
    <fmt:formatDate value="${today}"/><br />

    date 형식으로 날짜 출력 입니다.
    <fmt:formatDate value="${today }" type="date"/>

    time 형식으로 날짜 출력 입니다.
    <fmt:formatDate value="${today }" type="time"/>

    날짜와 시간을 함께 표시하는 both 형식 입니다.
    <fmt:formatDate value="${today }" type="both"/>

    패턴을 지정하여 날짜와 시간을 출력할 수 있습니다.

        <fmt:formatDate value="${today }" pattern="yyyy년 MM월 DD일 hh시 mm분 ss초"/><br />
        <fmt:formatDate value="${today }" pattern="yyyy년 MM월 DD일 EE요일 hh시 mm분 ss초"/><br />

    날짜를 표시하는 dateStyle 입니다.

        <fmt:formatDate value="${today }" dateStyle="default"/><br />
        <fmt:formatDate value="${today }" dateStyle="short"/><br />
        <fmt:formatDate value="${today }" dateStyle="medium"/><br />
        <fmt:formatDate value="${today }" dateStyle="long"/><br />
        <fmt:formatDate value="${today }" dateStyle="full"/><br />

    시간을 표시하는 timeStyle 입니다.

        <fmt:formatDate value="${today }" type="time" timeStyle="default"/><br />
        <fmt:formatDate value="${today }" type="time" timeStyle="short"/><br />
        <fmt:formatDate value="${today }" type="time" timeStyle="medium"/><br />
        <fmt:formatDate value="${today }" type="time" timeStyle="long"/><br />
        <fmt:formatDate value="${today }" type="time" timeStyle="full"/><br />

    다른 시간대의 시간을 출력할 수 있습니다.
    다른 시간대를 설정 위해서는 timeZone 태그를 사용합니다.
    GMT+2 시간대의 시간을 출력해보겠습니다.

        <fmt:timeZone value="GMT+2">
            <fmt:formatDate value="${today }" type="both" dateStyle="full" timeStyle="full"/><br />
        </fmt:timeZone>

    setLocale 태그로 지역 설정을 바꾸면 그 지역에 맞게 시간 정보가 출력됩니다.

        <fmt:setLocale value="en_US"/>
        <fmt:formatNumber value="10000000000" type="currency"/><br />
        <fmt:formatDate value="${today }" type="both" dateStyle="full" timeStyle="full"/><br />

    지역이 바뀐 것을 보기 위해 화폐도 출력했습니다.

    fmt 태그를 이용해서 간단하게 포맷을 정할 수 있습니다.
    다른 태그 정보를 보고 싶으시면 JSTL fmt 링크를 참고 하세요.

    반응형

    'JSP' 카테고리의 다른 글

    JSTL core tag 사용하기  (0) 2019.01.31
    JSP JSTL 추가하기  (0) 2019.01.30
    JSP EL(Expression Language)  (0) 2019.01.30
    JSP 액션 태그 (Action Tag)  (0) 2019.01.29

    댓글

Designed by Tistory.