반응형
이전 이전에는 JSTL 중 Core 그리고 Formatting태그 중 formatNumer/parseNumber/formatDate/parseDate에 대해 알아보았습니다. 이번에는 Formatting 태그 중 빈도수는 낮지만 남은 Formatting태그에 대해 알아보도록 하겠습니다.
일단 복습 의미에서 JSTL의 분류와 Formatting태그에 대해 간략하게 알아보면
2020/08/26 - [개발 창고/웹 개발] - [JSTL] Core태그
2020/08/27 - [개발 창고/웹 개발] - [JSTL] Formatting태그(1)
JSTL 분류
- Core 태그
- Formatting 태그
- SQL 태그
- XML 태그
- JSTL Function
Formatting 태그
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
JSP페이지 상단에 위와 같이 해주어야 formatting 태그의 사용이 가능합니다.
bundle
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:bundle> | <bod>에서 사용될 번들 리소스를 로드합니다. | |||
basename | Y | 없음 | 로드할 명되긴 기본 이름 번들 | |
prefix | N | 없음 | 하위 태그인 <fmt:message>에 앞에 붙일 사전어 |
package com.test;
import java.util.ListResourceBundle;
public class ExampleList extends ListResourceBundle {
@Override
protected Object[][] getContents() {
Object[][] list = {
{"product.apple", "사과"}
, {"product.banana", "바나"}
, {"product.melon", "멜론"}
};
return list;
}
}
다음과 같은 리소스가 있는 경우
<!-- prefix를 사용하여 ExampleList 번들을 로드하는 경우 -->
<p>prefix를 사용하여 ExampleList 번들을 로드하는 경우</p>
<fmt:bundle basename="com.test.ExampleList" prefix="product.">
<fmt:message key="apple"/><br/>
<fmt:message key="banana"/><br/>
<fmt:message key="melon"/><br/>
</fmt:bundle>
<p>prefix를 사용하지 않고 ExampleList 번들을 로드하는 경우</p>
<!-- prefix를 사용하지 않고 ExampleList 번들을 로드하는 경우 -->
<fmt:bundle basename="com.test.ExampleList">
<fmt:message key="product.apple"/><br/>
<fmt:message key="product.banana"/><br/>
<fmt:message key="product.melon"/><br/>
</fmt:bundle>
setBundle
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:setBundle> | 로드한 번들 리소스 저장해 놓을 변수 | |||
basename | Y | 없음 | 로드할 명되긴 기본 이름 번들 | |
var | N | 기본값 변경 | 로드한 번들이 저장될 새로운 변수 명 | |
scope | N | Page | 해당 리소스가 적용 가능한 범위 |
package com.test;
import java.util.ListResourceBundle;
public class ExampleList extends ListResourceBundle {
@Override
protected Object[][] getContents() {
Object[][] list = {
{"product.apple", "사과"}
, {"product.banana", "바나"}
, {"product.melon", "멜론"}
};
return list;
}
}
위의 리소스를 사용하는 경우
<!-- ExampleList 번들을 로드 -->
<p>ExampleList 번들을 로드</p>
<fmt:setBundle basename="com.test.ExampleList" var="list"/>
<!-- 사전에 로드한 list 번들을 활용하는 경우 -->
<p>사전에 로드한 list 번들을 활용하는 경우</p>
<fmt:message bundle="${list}" key="product.apple"/><br/>
<fmt:message bundle="${list}" key="product.banana"/><br/>
<fmt:message bundle="${list}" key="product.melon"/><br/>
message
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:message> | 국제화된 메시지 표시 | |||
key | N | Body | 검색을 위한 키 | |
bundle | N | 기본 번들 | 검색하기 위한 리소스 번들 | |
var | N | 현재 페이지에 표시 | 검색된 지역 메시지을 저장할 변수 명 | |
scope | N | Page | 검색된 지역 변수를 사용할 수 있는 범위 |
상단에서 예시는 이미 안내가 되었으므로 따로 예시는 들지 않도록 하겠습니다.
setLocale
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:setLocale> | LOCALE 설정 | |||
value | Y | 기본 LOCALE | ISO-639 언어 코드와 ISO-3166 국가 코드를 나타내는 2개의 코드 조합으로 지정 | |
variant | N | 없음 | 브라우저별 변형 | |
scope | N | Page | 적용될 범위 (page|request|session|appplication) |
<p>Default Locale : <%= response.getLocale() %></p>
<!-- 영어_미국: en_US -->
<fmt:setLocale value="en_US"/>
<p>영국_미국 Locale : <%= response.getLocale() %></p>
<!-- 한국어_한국: ko_KR -->
<fmt:setLocale value="ko_KR"/>
<p>한국어_한국 Locale : <%= response.getLocale() %></p>
<!-- 독일어_독일: en_DE -->
<fmt:setLocale value="en_DE"/>
<p>독일어_독일 Locale : <%= response.getLocale() %></p>
<!-- 캐나다어_캐나다: en_CA -->
<fmt:setLocale value="en_CA"/>
<p>캐나다어_캐나다 Locale : <%= response.getLocale() %></p>
timeZone
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:timeZone> | 표준시간대 설정 | |||
value | Y | 없음 | 적용할 표준시간대 |
<c:set var="now" value="<%=new java.util.Date()%>"/>
<p>Default :<fmt:formatDate value="${now}" type="both"/></p>
<c:forEach var="zone" items="<%= java.util.TimeZone.getAvailableIDs()%>">
${zone} :
<fmt:timeZone value = "${zone}">
<fmt:formatDate value = "${now}" timeZone = "${zn}" type = "both" />
</fmt:timeZone>
<br/>
</c:forEach>
표준시간대별 현재 정보를 반환해준다
setTimeZone
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:setTimezone> | TimeZone을 변수로 저장 | |||
value | Y | 없음 | 저장할 표준시간대 | |
var | N | 기본값 변경 | 표준시간대를 저장할 변수명 | |
scope | N | Page | 적용될 범위 (page|request|session|appplication) |
<!-- 현재값을 now로 저장 -->
<c:set var="now" value="<%=new java.util.Date()%>"/>
<p>기본 날짜: <fmt:formatDate value="${now}" type="both" dateStyle="full" timeStyle="full" /></p>
<p><표준시간대 변경 GMT-8></p>
<fmt:setTimeZone value = "GMT-8" />
<p>변경된 날짜: <fmt:formatDate value = "${now}" type="both" dateStyle="full" timeStyle="full" /></p>
requestEncoding
태그 | 옵션 | 필수 | 기본값 | 내용 |
<fmt:requestEncoding> | Character Encoding을 설정 | |||
value | Y | 없음 | 적용할 인코딩 키 값 |
<p>Default Encoding : <%= request.getCharacterEncoding() %></p>
<!-- UTF-8 -->
<fmt:requestEncoding value="UTF-8"/>
<p>Encoding : <%= request.getCharacterEncoding() %></p>
<!-- UTF-16 -->
<fmt:requestEncoding value="UTF-16"/>
<p>Encoding : <%= request.getCharacterEncoding() %></p>
<!-- UTF-32 -->
<fmt:requestEncoding value="UTF-32"/>
<p>Encoding : <%= request.getCharacterEncoding() %></p>
<!-- EUC-KR -->
<fmt:requestEncoding value="EUC-KR"/>
<p>Encoding : <%= request.getCharacterEncoding() %></p>
반응형
'개발 창고 > Web' 카테고리의 다른 글
[Javascript] 사업자등록번호 체크 (0) | 2020.08.31 |
---|---|
[JSTL] JSTL Function (0) | 2020.08.31 |
[JSTL] Formatting태그(1) (0) | 2020.08.27 |
[JSTL] Core태그 (0) | 2020.08.26 |
[HTTP] 개발하다 보면 접하게되는 HTTP 응답코드 (0) | 2020.08.21 |