본문 바로가기

Langauge/JSP, Servlet

[JSP, Servlet] fmt 태그

  fmt 태그란?

  fmt 태그는 Formatting 태그로 포맷에 관련된 태그이다.

  다음과 같이 fmt 태그를 이용하여 예제를 실행해볼 것이다.

 

 

 클라이언트가 보내온 데이터를 읽어서  역할  [ 1번째 파일 ]

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%
   String[] pointArr1 = {"10","20.4","30.5","46"};  // 문자열 타입이지만 자동형변환된다.
   request.setAttribute("pointArr1", pointArr1);
   
   String[] pointArr2 = null;
   request.setAttribute("pointArr2", pointArr2);
   
   int[] priceArr = {50000, 100000, 250000, 150000, 2000000};
   request.setAttribute("priceArr", priceArr);   
   
   RequestDispatcher dispatcher = request.getRequestDispatcher("08_fmt_view_02.jsp"); 
   dispatcher.forward(request, response);
%>

 

 

 예제 1.  JSTL을 사용하여 문자열로 되어진 숫자를 정수로 형변환하여 누적한 결과값 나타내기

 

  •  fmt:parseNumber       : 문자열을 숫자형식으로 형변환 시키는 것
  •  integerOnly = "true"  :  소수점은 절삭해버리고 정수만 취해오는 것

    즉, 정수만 취해온 값을 변수 pointInt 에 넣어준 후, 누적한 값을 변수 var 에 넣어주어 출력한다.

 

 실제파일이 저장되는 저장소 역할  [ 2번째 파일 ]

<c:set var="sum" value="0" />
   <c:if test="${ not empty pointArr1 }">
      <ul style="list-style-type: circle;">
         <c:forEach var="point" items="${pointArr1}">
            <li>
               <fmt:parseNumber var="pointInt" value="${point}" integerOnly="true" />
               <%-- fmt:parseNumber 은 문자열을 숫자형식으로 형변환 시키는 것이다.
                    integerOnly="true" 은 소수점은 절삭해버리고 정수만 취해오는 것이다.
                     정수만 취해온 값을 변수 pointInt 에 넣어줌.
               --%>
               ${pointInt}
            </li>
            <c:set var="sum" value="${sum + pointInt}" />
         </c:forEach>
      </ul>
      pointArr1 을 정수만 취해온 누적의 합계 : ${sum}
   </c:if>

 

 

[ 웹브라우저 실행화면 ]

 

 


 예제 2.  forEach 를 사용하면서 index번호를 나타내기

 

  •  varStatus="status"  와 함께  ${status.index} 사용    :   index 번호가 0 부터 출력됨.

    즉, 배열 pointArr1 을 돌면서 변수 point 에 넣어주는데 옆에 index 번호도 함께 나타내는 것이다.
    참고로 "status" 는 임의의 이름으로 지정해주며,

    varStatus 값에 "status" 사용하면, 아래의 ${ }에도 동일하게 status. 사용해야 한다.

 

 실제파일이 저장되는 저장소 역할  [ 2번째 파일 ]

<c:if test="${ not empty pointArr1 }">
  <ul>
     <c:forEach var="point" items="${pointArr1}" varStatus="status">
        <li>${point}&nbsp;(인덱스번호 &nbsp; ${status.index})</li>
        <%-- ${status.index} 은 0 부터 시작한다. 
             varStatus="status" 와 함께 ${status.index} 사용해주면 index 번호가 나온다.
             즉, 배열 pointArr1 을 돌면서 변수 point 에 넣어주는데 옆에 index 번호도 함께 나타내는 것이다.
             참고로 "status" 는 임의의 이름이며, varStatus 값에 "status" 사용하면, 아래의 ${}에도 동일하게 status. 사용해야 한다.
        --%>
     </c:forEach>
  </ul>
</c:if>

 

 

[ 웹브라우저 실행화면 ]

 

 


 예제 3.  forEach 를 사용하면서 순서번호를 나타내기

 

  •  varStatus="status"  와 함께  ${status.count} 사용    :  반복 횟수가 1 부터 시작함.

    즉, 배열 pointArr1 을 돌면서 변수 point 에 넣어주는데 옆에 반복 횟수도 함께 나타내는 것이다.

 

 실제파일이 저장되는 저장소 역할  [ 2번째 파일 ]

<c:if test="${ not empty pointArr1 }">
  <ul>
     <c:forEach var="point" items="${pointArr1}" varStatus="status">
        <li>${point}&nbsp;(순서번호 &nbsp; ${status.count})</li>
        <%-- ${status.count} 은 1 부터 시작한다. 
             varStatus="status" 와 함께 ${status.count} 사용해주면 반복 횟수가 나온다.
             즉, 배열 pointArr1 을 돌면서 변수 point 에 넣어주는데 옆에 반복 횟수도 함께 나타내는 것이다.
        --%>
     </c:forEach>
  </ul>
</c:if>

 

 

[ 웹브라우저 실행화면 ]

 

 


 예제 4.  정수로 되어진 데이터를 세자리 마다 콤마를 찍어서 나타내어 주기(JSTL을 사용한것)

 

  •  fmt:formatNumber  :   포맷형식을 나타냄.
  •  pattern="#,###"       :   숫자가 #,### 형식으로 나타냄.

   즉, <fmt:formatNumber value="${price}" pattern="#,###" /> 은 value 값인 price 값에 pattern="#,###" 형식으로 포맷하여     출력한다.

 

 실제파일이 저장되는 저장소 역할  [ 2번째 파일 ]

<c:set var="sum" value="0" />
   <c:if test="${ not empty priceArr }">
      <ul>
         <c:forEach var="price" items="${priceArr}">
            <li><fmt:formatNumber value="${price}" pattern="#,###" /></li>
            <c:set var="sum" value="${sum + price}" />
            <%-- fmt:formatNumber 는 포맷형식을 나타낸다.
            	 즉, price 값에 pattern="#,###" 형식으로 포맷해준다.
            --%>
         </c:forEach>
      </ul>
      priceArr 누적의 합계 : <fmt:formatNumber value="${sum}" pattern="#,###" />
   </c:if>

 

 

[ 웹브라우저 실행화면 ]

 

 

 

 

 

 

 

 


※ 참조사이트  https://sinna94.tistory.com/11

 

JSTL fmt 태그 사용하기

이 글을 보시기 전 참고하시면 좋은 글입니다. JSP EL JSP JSTL 등록하기 JSTL core tag 사용하기 fmt 태그란? fmt 태그는 Formatting 태그로 포맷에 관련된 태그입니다. fmt 태그를 사용하기 위해서는 <%@ taglib.

sinna94.tistory.com