English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
<fmt:setLocale>タグは、指定された地域をlocale設定変数に保存するために使用されます。
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
<fmt:setLocale>タグには以下の属性があります:
属性 | 説明 | 必要かどうか | デフォルト値 |
---|---|---|---|
値 | ISOを指定-639 言語コードおよびISO-3166 国コード | はい | en_US |
バージョン | 特定のブラウザバージョン | いいえ | なし |
範囲 | Locale設定変数の範囲 | いいえ | ページ |
リソースバンドは、地域特定のオブジェクトを含んでいます。リソースバンドはキー値ペアを含んでいます。プログラムが地域特定のリソースが必要な場合、すべてのキー値ペアをすべてのlocaleで共有できますが、localeに対して変換された値を指定することもできます。リソースバンドは、特定のlocaleに指定された内容を提供するのに役立ちます。
Javaリソースバンドファイルは、一連のキー値ペアを含んでいます。私たちが関心を持っているのは、java.util.ListResourceBundleクラスを継承する既にコンパイルされたJavaクラスの作成に関係しています。これらのクラスをコンパイルして、WebアプリケーションのCLASSPATHに配置する必要があります。
デフォルトのリソースバンドを定義しましょう:
package com.w;3codebox; import java.util.ListResourceBundle; public class Example_En extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { {"count.one", "One"}, {"count.two", "Two"}, {"count.three", "Three"}, }; }
さらに、Spanish Locale用のリソースバンドを定義します:
package com.w;3codebox; import java.util.ListResourceBundle; public class Example_es_ES extends ListResourceBundle { public Object[][] getContents() { return contents; } static final Object[][] contents = { {"count.one", "Uno"}, {"count.two", "Dos"}, {"count.three", "Tres"}, }; }
以上のファイルをExamble.classとExamble_es_ES.classにコンパイルし、それらをWebアプリケーションのCLASSPATHに配置します。今やこれらの3つの数字をJSTLタグで表示できます:
<%@ page language="java" contentType="text"/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <html> <head> <title>JSTL fmt:setLocale タグ</<title> </<head> <body> <fmt:bundle basename="com.w3codebox.Example"> <fmt:message key="count.one"/><br/> <fmt:message key="count.two"/><br/> <fmt:message key="count.three"/><br/> </fmt:bundle> <!-- 地域を変更--> <fmt:setLocale value="es_ES"/> <fmt:bundle basename="com.w3codebox.Example"> <fmt:message key="count.one"/><br/> <fmt:message key="count.two"/><br/> <fmt:message key="count.three"/><br/> </fmt:bundle> </body> </html>
実行結果は以下の通りです:
One Two Three Uno Dos Tres
確認<fmt:bundle>および<setBundle>詳細情報を取得するために。