JSP
JSTL(JSP Standard Tag Library) - 7. 포맷(fmt) 태그
에어팟맥스
2022. 9. 1. 23:22
fmt 태그는 Formatting 태그로 포맷에 관련된 태그입니다.
실행 파일
<%@ 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);
%>
view 파일
문자열로 되어진 숫자를 누적한 결과값(자동형변환, 형변환) 나타내기 및 정수로 되어진 데이터를 세자리마다 콤마를 찍어서 나타내어주기
<fmt:parseNumber var="pointInt" value="${point}" integerOnly="true" />
fmt:parseNumber 은 문자열을 숫자형식으로 형변환 시킨다.
integerOnly="true" 은 소수점은 절삭해버리고 정수만 취해온다.
정수만 취해온 값을 변수 pointInt 에 넣어줌.
<fmt:formatNumber value="${price}" pattern="#,###" />
pattern="#,###": 숫자가 #,### 형식으로 출력됨
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- ==== JSTL(JSP Standard Tag Library) 사용하기 ==== --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%--
fmt 태그는 Formatting 태그로 포맷에 관련된 태그입니다.
참조사이트 https://sinna94.tistory.com/11
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>문자열로 되어진 숫자를 누적한 결과값(자동형변환, 형변환) 나타내기 및 정수로 되어진 데이터를 세자리마다 콤마를 찍어서 나타내어주기</title>
</head>
<body>
<h2>문자열로 되어진 숫자를 누적한 결과값(자동형변환) 나타내기(JSTL을 사용한것)</h2>
<c:set var="sum" value="0" /> <%-- value="0" 초기치는 항상 "0"(문자열) 이어야 함. 0이면 안됨 --%>
<c:if test="${ not empty pointArr1 }"> <!-- requestScope. 생략 -->
<ul>
<c:forEach var="point" items="${pointArr1}">
<li>${point}</li>
<c:set var="sum" value="${sum + point}" />
</c:forEach>
</ul>
pointArr1 누적의 합계 : ${sum}
</c:if>
<br>
<hr style="border: solid 1px orange;" />
<br>
<h2>문자열로 되어진 숫자를 정수로 형변환하여 누적한 결과값 나타내기(JSTL을 사용한것)</h2>
<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>
<br>
<hr style="border: solid 1px orange;" />
<br>
<h2>forEach 를 사용하면서 index번호를 나타내기</h2>
<c:if test="${ not empty pointArr1 }">
<ul>
<c:forEach var="point" items="${pointArr1}" varStatus="status"> <%-- varStatus="이름은맘대로" --%>
<li>${point} (인덱스번호 ${status.index})</li>
<%-- ${status.index} 은 0 부터 시작한다. --%>
</c:forEach>
</ul>
</c:if>
<br>
<hr style="border: solid 1px orange;" />
<br>
<h2>forEach 를 사용하면서 순서번호를 나타내기</h2>
<c:if test="${ not empty pointArr1 }">
<ul>
<c:forEach var="point" items="${pointArr1}" varStatus="status">
<li>${point} (순서번호 ${status.count})</li>
<%-- ${status.count} 은 1 부터 시작한다. --%>
</c:forEach>
</ul>
</c:if>
<br>
<hr style="border: solid 1px blue;" />
<br>
<h2>정수로 되어진 데이터를 세자리 마다 콤마를 찍어서 나타내어 주기(JSTL을 사용한것)</h2>
<c:set var="sum" value="0" />
<c:if test="${ not empty priceArr }">
<ul>
<c:forEach var="price" items="${priceArr}">
<li>${price}</li>
<c:set var="sum" value="${sum + price}" />
</c:forEach>
</ul>
priceArr 누적의 합계 : ${sum}
</c:if>
<br><br>
<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> <%-- pattern="#,###": 숫자가 #,### 형식으로 출력됨 --%>
<c:set var="sum" value="${sum + price}" />
</c:forEach>
</ul>
priceArr 누적의 합계 : <fmt:formatNumber value="${sum}" pattern="#,###" />
</c:if>
</body>
</html>