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} (인덱스번호 ${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} (순서번호 ${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
'Langauge > JSP, Servlet' 카테고리의 다른 글
[Servlet] Servlet 생성하는 방법 (0) | 2022.09.02 |
---|---|
[JSP] WEB-INF 에 저장하는 이유 (0) | 2022.09.01 |
[JSP, Servlet] JSP 표준액션 - useBean (0) | 2022.09.01 |
[JSP, Servlet] JSP 표준액션 - forward (0) | 2022.09.01 |
[JSP, Servlet] <%@ include file="" %> 와 <jsp:include> 차이 (0) | 2022.08.30 |