<fmt:setLocale> タグ
<fmt:setLocale>タグは、指定されたロケールをlocale設定変数に格納するために使用されます。
構文
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
属性
<fmt:setLocale>タグには次の属性があります:
| 属性 | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
| value | ISO-639言語コードとISO-3166国コードを指定します。 | である | en_US |
| variant | ブラウザ固有のバリアント | 否 | 无 |
| scope | Locale設定変数のスコープ | 否 | Page |
サンプルプログラム
リソースバンドルには、ロケール固有のオブジェクトが含まれます。リソースバンドルにはキーと値のペアが含まれます。プログラムがロケール固有のリソースを必要とする場合、すべてのキーをすべてのロケールで共有できますが、ロケール固有に変換された値を指定することもできます。リソースバンドルは、ロケール固有のコンテンツを提供するのに役立ちます。
Javaリソースバンドルファイルには、一連のキーと値のペアが含まれます。ここで紹介する方法は、java.util.ListResourceBundleクラスを継承するコンパイル済みJavaクラスを作成することです。これらのクラスをコンパイルし、WebアプリケーションのCLASSPATHに配置する必要があります。
デフォルトのリソースバンドルを定義しましょう:
package com.サンプル;
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.サンプル;
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に配置します。これで、JSTLタグを使用して、次のようにこれら3つの数値を表示できます。
<%@ 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.サンプル.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.サンプル.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>して詳細を確認してください。
その他の拡張機能
JSP 標準タグライブラリ