본문 바로가기
학습/JSP

27. JSTL - Core 태그 라이브러리 사용(2)

by Elfen Lied 2022. 11. 24.
반응형

- 다국어 태그 라이브러리 사용하기 

- .properties 파일 준비하기

  • Help 탭 -> 이클립스 마켓플레이스에서 properties 검색해서 simple properties editor 받기
  • properties 파일로 실행되게하기
  • 설정에 Editor -> File Association -> .properties를 디폴트로 만들어줌

 

 

 

 

- src/main/java에 pack 생성 - resources

resources 패키지 안에 member.properties 생성

mem.name=조이
mem.address=대구광역시
mem.job=개발자

 

- 두가지 만들기

shop_en.properties 생성

shop_ko.properties 생성

// shop_en
shop.product.add=Register Product
shop.product.update=Modify Product
shop.product.list=Product List
shop.product.detail=Product Detail

lang.ko=한국어
lang.en=English


// shop_ko
shop.product.add=상품등록
shop.product.update=상품수정
shop.product.list=상품목록
shop.product.detail=상품상세

lang.ko=한국어
lang.en=English

 

 

- webapp 폴더 / test05 폴더 / message 폴더 만들고 shop.jsp 생성

 

- 부트스트랩3 을 사용함

Navbar Buttons 사용

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script	src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script	src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<c:if test="${empty param.lang or param.lang == 'ko'}">
		<fmt:setLocale value="ko_KR" />
	</c:if>
	<c:if test="${param.lang == 'en'}">
		<fmt:setLocale value="en_US"/>
	</c:if>
	
	<fmt:bundle basename="resources.shop">
		<nav class="navbar navbar-inverse">
			<div class="container-fluid">
				<div class="navbar-header">
					<a class="navbar-brand" href="#">WebSiteName</a>
				</div>
				<ul class="nav navbar-nav">
					<li class="active"><a href="#">Home</a></li>
					<li><a href="#"><fmt:message key="shop.product.add" /></a></li>
					<li><a href="#"><fmt:message key="shop.product.update" /></a></li>
					<li><a href="#"><fmt:message key="shop.product.list" /></a></li>
					<li><a href="#"><fmt:message key="shop.product.detail" /></a></li>
				</ul>
				<a href="?lang=ko" class="btn btn-danger navbar-btn">
					<fmt:message key="lang.ko" />
				</a> 
				<a href="?lang=en" class="btn btn-danger navbar-btn">
					<fmt:message key="lang.en" />
				</a>
			</div>
		</nav>
	</fmt:bundle>
</body>
</html>

 

 

 

 

- 포매팅 태그 라이브러리 사용

- formatTest.jsp 생성

 

 

  • fmt:formatNumber
  • fmt:formatDate
  • fmt:timeZone

 

 

 

 

<%@page import="java.util.TimeZone"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>숫자 형식화</h2>
	<c:set var="price" value="10000000" />
	바로 출력 : <fmt:formatNumber value="${price }" type="number" /><br>
	변수로 저장 : <fmt:formatNumber var="priceNumber" value="${price }" type="number" /><br>
	${priceNumber}<br>
	
	<h2>퍼센트</h2>
	<fmt:formatNumber value="${price }" type="percent" /><br>
	
	<h2>통화 표현</h2>
	원화 : <fmt:formatNumber value="${price }" type="currency" currencySymbol="₩" groupingUsed="false"/><br>
	달러 : <fmt:formatNumber value="${price }" type="currency" currencySymbol="$" groupingUsed="true"/><br>
	원화 : <fmt:formatNumber value="${price }" type="currency" currencyCode="KRW"/><br>
	달러 : <fmt:formatNumber value="${price }" type="currency" currencyCode="USD"/><br>
	유로 : <fmt:formatNumber value="${price }" type="currency" currencyCode="EUR"/><br>
	
	<!-- 
		type : numver | percent | currency
		groupingUsed : 세 자리마다 콤마 추가, 기본값 : true
		currencyCode : 통화 코드 지정 KRW | USD | EUR | JPY | CNY
	 -->
	 
	<h2>날짜 형식화</h2>
	<c:set var="now" value="<%= new Date() %>" />
	형식화 전 : ${now} <br>
	형식화 후 : <fmt:formatDate value="${now }" /> <br><br>
	date : <fmt:formatDate value="${now }" type="date" /> <br> <!-- 기본값 -->
	time : <fmt:formatDate value="${now }" type="time" /> <br>
	both : <fmt:formatDate value="${now }" type="both" /> <br><br>
	
	<br>
	
	<!-- 
		full | long | medium | short
	-->	 
	<b>dateStyle</b>
	지정하지 않음 : <fmt:formatDate value="${now }" type="both" /> <br>
	full : <fmt:formatDate value="${now }" type="both" dateStyle="full"/> <br>
	long : <fmt:formatDate value="${now }" type="both" dateStyle="long"/> <br>
	medium : <fmt:formatDate value="${now }" type="both" dateStyle="medium"/> <br>
	short : <fmt:formatDate value="${now }" type="both" dateStyle="short"/> <br><br>
	
	<b>timeStyle</b> <br>
	지정하지 않음 : <fmt:formatDate value="${now }" type="both" /> <br>
	full : <fmt:formatDate value="${now }" type="both" timeStyle="full"/> <br>
	long : <fmt:formatDate value="${now }" type="both" timeStyle="long"/> <br>
	medium : <fmt:formatDate value="${now }" type="both" timeStyle="medium"/> <br>
	short : <fmt:formatDate value="${now }" type="both" timeStyle="short"/> <br>
	
	
	<h3>직접 지정</h3>
	<fmt:formatDate value="${now}" pattern="z yyyy년 MM월 dd일 a hh시mm분ss초" />
	
	<h4>타임존 지정</h4>
	<fmt:timeZone value="America/New York">
		뉴욕 : <fmt:formatDate value="${now}" type="both" timeStyle="full"/>
	</fmt:timeZone>
	
	<%
		String[] local = TimeZone.getAvailableIDs();
		for(String s : local) {
			out.print(s + "<br>");
		}
	%>
</body> 
</html>

 

 

 

 

반응형

'학습 > JSP' 카테고리의 다른 글

29. 파일 업로드  (0) 2022.11.30
28. 게시판(기본)  (0) 2022.11.25
26. 회원 가입, 회원 조회, 회원 수정, 회원 삭제  (0) 2022.11.18
25. JSTL - Core 태그 라이브러리 사용(1)  (0) 2022.11.18
24. 표현 언어(2)  (0) 2022.11.18

댓글