반응형
- 다국어 태그 라이브러리 사용하기
- .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 |
댓글