JSP_6강_6_포맷팅 라이브러리

열라뽕따히·2024년 3월 22일

JSP

목록 보기
34/43

포맷팅 라이브러리 종류

  • <fmt:formatNumber> : 표시할 숫자의 형식을 지정하는 태그.
  • <fmt:timeZone> : 지정한 국가의 시간을 지정하는 태그. 태그를 열고 닫는 영역에서만 적용이 됨.
  • <fmt:setTimeZone> : 지정한 국가의 시간을 지정하는 태그.
  • <fmt:formatDate> : 지정한 형식의 날짜를 표시하는 태그.
     

<fmt:formatNumber> 태그의 여러 가지 속성.

  • value : 출력의 형식을 지정함.
  • type : 츨력의 타입을 지정함.
  • percent : %
  • number : 숫자
  • currency : 통화 형식
  • currencyCode : 통화 코드를 지정함. 한국의 원화는 KRW임.
  • currencySymbol : 통화를 표시할 때 사용할 기호를 표시함.
  • var : <fmt:formatNumber> 태그의 결과를 저장할 변수의 이름을 지정.
  • scope : 변수의 접근 범위를 지정함.
  • pattern : 숫자가 출력될 양식을 지정함.

<fmt: formatDate> 태그의 여러 가지 속성

  • value : 포맷팅될 날짜를 지정하는 속성
  • type : 포맷팅할 타입을 지정하는 속성
  • date : 날짜를 지정
  • time : 시간을 지정
  • both : 날짜 / 시간을 지정
  • dateStyle : 날짜의 출력 양식을 지정하는 태그 값에는 full, long, medium, short 등을 지정할 수 있음
  • timeStyle : 시간 출력 양식을 지정하는 태그
  • pattern : 직접 출력 양식을 지정하는 속성
  • timeZone : 특정 나라 시간대로 시간을 설정하는 속성




<fmt:formatNumber> 예시


=============================코드=============================
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
			<div align = "center">
				<hr width = "30%" color = "gray">
					<h3>커피 주문 폼 페이지</h3>
				<hr width = "30%" color = "gray">
				<br/>
				
				<form method = "post" action = "Ex03.jsp">
					<table border = "1" width = "300">
						<tr>
							<th>커피 종류</th>
							<td>
								<select name = "coffee_str">
									<option value = "1">아메리카노 - 3,000원</option>
									<option value = "2">카페라떼 - 4,000원</option>
									<option value = "3">카푸치노 - 4,500원</option>
									<option value = "4">마끼아또 - 4,500원</option>
								</select>
							</td>
						</tr>
						
						<tr>
							<th>커피 수량</th>
							<td>
								<input type  = "number" min = "1" max = "100" name = "amount">
							</td>
						</tr>
						
						<tr>
							<td colspan = '2' align = "center">
								<input type = "submit" value = "계산">&nbsp;&nbsp;&nbsp;
								<input type = "reset" value = "취소">
							</td>
						</tr>
					</table>
				
				</form>
			</div>

</body>
</html>

위의 jsp를 실행했을 때 입력된 값을 출력하는

Ex03.jsp 생성


=============================코드=============================

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%-- JSTL 라이브러리를 사용하겠다고 선언 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%-- 포멧팅 라이브러리를 사용하겠다고 선언 --%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<c:set var="coffee" value = "${param.coffee_str }" />
	<c:set var="amount" value = "${param.amount }" />
	
	<%-- 다중 if를 써야 하나 JSTL에는 쓸 수 없기 때문에 choose를 사용 --%>
	<c:choose>
		<c:when test="${coffee == 1 }">
				<c:set var = "str" value = "아메리카노" />
				<c:set var = "price" value = "3000" />
		</c:when>
		
		<c:when test="${coffee == 2 }">
				<c:set var = "str" value = "카페라떼" />
				<c:set var = "price" value = "4000" />
		</c:when>
		
		<c:when test="${coffee == 3 }">
				<c:set var = "str" value = "카푸치노" />
				<c:set var = "price" value = "4500" />
		</c:when>
		
		<c:when test="${coffee == 4 }">
				<c:set var = "str" value = "마끼아토" />
				<c:set var = "price" value = "4500" />
		</c:when>
	</c:choose>
	
	<div align = "center">
		<h2>커피 주문 내역</h2>
		
		<table border = "1" width = "350">
			<tr>
				<th>커피 종류</th>
				<td> ${str } </td>
			</tr>
			
			<tr>
				<th>커피 단가</th>
				<td>
					<fmt:formatNumber value = "${price }" />
				</td>
			</tr>
			
			<tr>
				<th>커피 수량</th>
				<td> ${amount } </td>
			</tr>
			
			<tr>
				<th>공급가액</th>
				<td>
					<fmt:formatNumber value = "${price * amount }" /></td>
			</tr>
			
			<tr>
				<th>부가세액</th>
				<td>
					<fmt:formatNumber value = "${(price * amount) * 0.1 }" /></td>
			</tr>
			
			<tr>
				<th>총 금 액</th>
				<td>
					<fmt:formatNumber value = "${(price * amount) + ((price * amount) * 0.1) }" /></td>
			</tr>
		</table>
	</div>

</body>
</html>

=============================실행=============================

계산 클릭




<fmt:formatDate> 예시


=============================코드=============================

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
 <%-- JSTL 라이브러리를 사용하겠다고 선언 --%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%-- 포멧팅 라이브러리를 사용하겠다고 선언 --%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	 
	 <h2>formatDate 예제</h2>
	 
	 <c:set var = "now" value = "<%=new Date() %>" />
	 
	 <fmt:formatDate value = "${now }" type = "date" dateStyle = "full" /> <br/>
	 <fmt:formatDate value = "${now }" type = "date" dateStyle = "long" /> <br/>
	 <fmt:formatDate value = "${now }" type = "date" dateStyle = "medium" /> <br/>
	 <fmt:formatDate value = "${now }" type = "date" dateStyle = "short" /> <br/>
	  
	 <hr>
	  
	  <fmt:formatDate value = "${now }" type = "time" timeStyle = "full" /> <br/>
	  <fmt:formatDate value = "${now }" type = "time" timeStyle = "long" /> <br/>
	  <fmt:formatDate value = "${now }" type = "time" timeStyle = "medium" /> <br/>
	  <fmt:formatDate value = "${now }" type = "time" timeStyle = "short" /> <br/>
	  
	  <hr>
	  
	  <fmt:formatDate value = "${now }" type = "both" dateStyle = "full"  timeStyle = "full"/> <br/>
	  <fmt:formatDate value = "${now }" type = "both" dateStyle = "full"  timeStyle = "long"/> <br/>
	  
	  <hr>
	  
	  <fmt:formatDate value = "${now }" pattern = "yyyy-MM-dd hh:mm:ss"/> <br/>
	  
	  <hr>
	  
	  한국 현재 시간 : 
	  	<fmt:formatDate value = "${now }" type = "both" dateStyle = "full"  timeStyle = "full"/> <br/>
	  	
	  <hr>
	  
	  <fmt:timeZone value="America/LA">
	  		미국 현재 시간 : 
	  			<fmt:formatDate value = "${now }" type = "both" dateStyle = "full"  timeStyle = "full"/> <br/>
	  </fmt:timeZone>

</body>
</html>

=============================실행=============================

0개의 댓글