English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
<fmt:bundle>タグは、<fmt:bundle>タグ内に現れる<fmt:message>タグで指定されたリソースバンドを利用可能にします。これにより、各<fmt:message>タグにリソースバンドを指定する手間を省くことができます。
例えば、以下の2つの<fmt:bundle>ブロックは同じ出力を生成します:
<fmt:bundle basename="com.w3codebox.Example"> <fmt:message key="count.one"/> </fmt:bundle> <fmt:bundle basename="com.w3codebox.Example" prefix="count."> <fmt:message key="title"/> </fmt:bundle>
<fmt:bundle baseName="<string>" prefix="<string>"/>
<fmt:bundle>タグには以下の属性があります:
属性 | 説明 | 必要なかどうか | デフォルト値 |
---|---|---|---|
ベース名 | 読み込まれるリソースバンドのベース名を指定します | はい | なし |
プレフィックス | <fmt:message>タグのkey属性のプレフィックスを指定します | いいえ | なし |
リソースバンドは、地域固有のオブジェクトを含んでいます。リソースバンドはキー値ペアを含んでいます。プログラムが地域固有のリソースが必要な場合、すべてのキー値ペアをすべての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"}, }; }
上記のファイルを Example.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:bundle タグ</<title> </<head> <body> <fmt:bundle basename="com.w3codebox.Example" prefix="count."> <fmt:message key="one">/><br/> <fmt:message key="two"/><br/> <fmt:message key="three"/><br/> </fmt:bundle> </body> </html>
実行結果は以下の通りです:
One Two Three
prefix属性を無くす方法を変更します:
<%@ 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:bundle タグ</<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> </body> </html>
実行結果は以下の通りです:
One Two Three
を確認できます<fmt:setLocale>および<fmt:setBundle>もっと情報を得るために。