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

JSP에서 백분율(퍼센트)을 파싱하는 방법 - fmt:parseNumber 태그 완벽 가이드

JSTL(JSP Standard Tag Library)에서 제공하는 <fmt:parseNumber> 태그는 문자열로 된 숫자, 백분율(%), 통화 값을 구문 분석(파싱)하여 프로그래밍에서 사용할 수 있는 숫자 데이터로 변환해 줍니다. 특히 사용자 입력값이나 외부 데이터에서 퍼센트 형태의 값을 추출해야 할 때 매우 유용합니다.

fmt:parseNumber 태그의 주요 속성

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

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

pattern 속성에 대한 참고 사항

pattern 속성은 <fmt:formatNumber> 태그의 pattern 속성과 동일한 방식으로 작동합니다. 다만 차이점이 있다면, 포매팅(formatting)이 아닌 파싱(parsing)의 경우에는 pattern 속성이 파서(parser)에게 "입력값이 어떤 형식으로 되어 있는지"를 알려주는 역할을 한다는 점입니다.

백분율 파싱 예제

다음은 <fmt:parseNumber> 태그를 사용하여 백분율 값을 파싱하는 실제 예제입니다.

<%@ 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 태그</title>
   </head>
   <body>
      <h3>숫자 파싱:</h3>
      <c:set var = "balance" value = "125.350%" />
      <fmt:parseNumber var = "i" type = "PERCENT" value = "${balance}" />
      <p>파싱 결과 (1) : <c:out value = "${i}" /></p>
      <fmt:parseNumber var = "i" integerOnly = "true" type = "PERCENT" value = "${balance}" />
      <p>파싱 결과 (2) : <c:out value = "${i}" /></p>
   </body>
</html>

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

숫자 파십:
파싱 결과 (1) : 125.35
파싱 결과 (2) : 125

예제 코드 해설

먼저 <c:set> 태그를 사용하여 "125.350%"라는 백분율 문자열을 balance 변수에 저장합니다. 이후 type="PERCENT" 옵션을 지정한 <fmt:parseNumber> 태그로 해당 값을 파싱합니다.

첫 번째 파싱에서는 소수점까지 그대로 변환되어 125.35가 출력되고, 두 번째 파싱에서는 integerOnly="true" 옵션이 적용되어 소수점 아래가 잘린 125라는 정수 값만 출력됩니다.

이처럼 <fmt:parseNumber> 태그와 type="PERCENT" 속성을 조합하면 JSP에서 백분율 문자열을 손쉽게 숫자 데이터로 변환할 수 있습니다.