Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

JSP에서 통화(Currency)를 구문 분석하는 방법 – fmt:parseNumber 태그 활용 가이드

JSTL의 <fmt:parseNumber> 태그는 숫자(number), 백분율(percent), 통화(currency) 형식의 문자열을 구문 분석(파싱)하여 프로그래밍에서 사용할 수 있는 숫자 값으로 변환하는 데 사용됩니다. 예를 들어 "$1250003.350"처럼 통화 기호가 포함된 문자열에서 기호를 제거하고 숫자만 추출할 때 유용합니다.

주요 속성

<fmt:parseNumber> 태그에서 사용할 수 있는 속성은 다음과 같습니다.

속성설명필수 여부기본값
value읽어들일(구문 분석할) 숫자 값아니요태그 본문(body)
typeNUMBER, CURRENCY, PERCENT 중 하나아니요number
parseLocale숫자를 구문 분석할 때 사용할 로케일(locale)아니요기본 로케일
integerOnly정수로만 구문 분석할지(true) 아니면 부동 소수점 수까지 포함할지(false) 여부아니요false
pattern사용자 지정 구문 분석 패턴아니요없음
timeZone표시되는 날짜의 시간대아니요기본 시간대
var구문 분석된 숫자를 저장할 변수 이름아니요페이지에 바로 출력
scope저장된 변수의 유효 범위(scope)아니요page

<fmt:formatNumber> 태그와 마찬가지로 pattern 속성도 제공됩니다. 다만 차이점이 있다면, 출력 시에는 숫자를 어떤 형식으로 보여줄지 지정하는 반면, 구문 분석 시에는 pattern 속성이 파서가 입력 문자열을 어떤 형식으로 해석해야 하는지를 알려준다는 점입니다.

예제

다음은 통화 형식의 문자열을 구문 분석하는 간단한 예제입니다.

<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "https://java.sun.com/jsp/jstl/fmt" %>
<html>
   <head>
      <title>JSTL fmt:parseNumber Tag</title>
   </head>
   <body>
      <h3>Number Parsing:</h3>
      <c:set var = "balance" value = "$1250003.350" />
      <fmt:parseNumber var = "i" type = "currency" value = "${balance}" />
      <p>Parsed Number (1) : <c:out value = "${i}" /></p>
      <fmt:parseNumber var = "i" integerOnly = "true" type = "currency" value = "${balance}" />
      <p>Parsed Number (2) : <c:out value = "${i}" /></p>
   </body>
</html>

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Number Parsing:
Parsed Number (1) : 1250003.35
Parsed Number (2) : 1250003

결과 분석

첫 번째 결과에서는 type="currency" 옵션 덕분에 통화 기호($)가 자동으로 제거되고 "1250003.35"라는 숫자 값만 추출됩니다. 두 번째 결과에서는 integerOnly="true" 속성을 추가하여 소수점 이하 자릿수를 버리고 정수 부분인 "1250003"만 얻은 것을 확인할 수 있습니다. 이처럼 <fmt:parseNumber> 태그를 활용하면 화면에 표시된 통화나 백분율 문자열을 계산 가능한 숫자 데이터로 손쉽게 변환할 수 있습니다.