プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPでリソースバンドルを識別するためのロケール設定方法(fmt:setLocaleタグの使い方)

<fmt:setLocale> タグは、指定したロケールをロケール設定変数に格納するために使用されます。このタグを使うことで、JSPページ内で使用する言語や地域を明示的に制御でき、多言語対応のWebアプリケーションを構築する際に非常に役立ちます。

属性一覧

<fmt:setLocale> タグには、以下の属性が用意されています。

属性説明必須デフォルト値
valueISO-639言語コードとISO-3166国コードからなる2部構成のコードを指定します(例:ja_JP、en_US)。はいen_US
variantブラウザ固有のバリアント(OSやベンダーごとの違いなど)を指定します。いいえなし
scopeロケール設定変数のスコープ(page、request、session、application)を指定します。いいえpage

リソースバンドルとは

リソースバンドルには、ロケール固有のオブジェクトが格納されています。リソースバンドルは「キーと値」のペアで構成されており、プログラムが特定のロケール向けのリソースを必要とするとき、すべてのロケールでキーを共通化しつつ、値だけを各ロケールに合わせて翻訳することができます。これにより、ユーザーの言語や地域に応じたコンテンツを柔軟に提供できるようになります。

Javaのリソースバンドルファイルには、キーから文字列へのマッピングが一連として定義されています。ここで紹介する方法では、java.util.ListResourceBundle クラスを継承したJavaクラスを作成します。作成したクラスファイルはコンパイルし、Webアプリケーションのクラスパス上に配置しておく必要があります。

デフォルトのリソースバンドルの定義

まず、デフォルトのリソースバンドルを以下のように定義します。

package com.tutorialspoint;
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"},
   };
}

スペイン語ロケール用リソースバンドルの定義

次に、スペイン語(es_ES)ロケール用のもうひとつのリソースバンドルを定義します。

package com.tutorialspoint;
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"},
   };
}

上記のクラス Example.classExample_es_ES.class をコンパイルし、WebアプリケーションのCLASSPATH上に配置してください。その後、以下のJSTLタグを使用することで、3つの数字を表示できます。

<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
   <head>
      <title>JSTL fmt:setLocale Tag</title>
   </head>
   <body>
      <fmt:bundle basename = "com.tutorialspoint.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.tutorialspoint.Example">
         <fmt:message key = "count.one"/><br/>
         <fmt:message key = "count.two"/><br/>
         <fmt:message key = "count.three"/><br/>
      </fmt:bundle>
   </body>
</html>

このコードを実行すると、以下のような結果が出力されます。最初のブロックではデフォルト(英語)のロケールが適用され、fmt:setLocale でロケールを es_ES に変更した後のブロックではスペイン語のメッセージが表示されていることがわかります。

One
Two
Three
Uno
Dos
Tres
  1. JSPでCookieを設定する方法を3ステップでわかりやすく解説

    JSPでCookieを設定する基本の流れ JSPでCookieを扱う場合、基本的には次の3つのステップで設定を行います。 Cookieオブジェクトを作成する 有効期限(最大生存期間)を設定する HTTPレスポンスヘッダーにCookieを追加して送信する それぞれの手順を順番に見ていきましょう。 ステップ1:Cookieオブジェクトの作成 Cookieクラスのコンストラクタに、Cookieの名前と値(どちらも文字列)を引数として渡してオブジェクトを生成します。 Cookie cookie = new Cookie("key","value"); 注意点

  2. JavaでJSplitPaneに背景色を設定する方法

    JSplitPaneはJComponentクラスのサブクラスで、2つのコンポーネントを1つのペイン内に水平方向または垂直方向に並べて配置できるコンポーネントです。各コンポーネントの表示領域は、実行時にユーザーがドラッグして自由に調整できます。JSplitPaneの重要なメソッドには、remove()、removeAll()、resetToPreferredSizes()、setDividerLocation()などがあります。また、JSplitPaneはPropertyChangeListenerインターフェースを生成することも可能です。 JSplitPaneに背景色を設定する手順 JSpli