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

JSTLのfmt:messageタグでキーをローカライズされたメッセージにマップし、パラメトリック置換を実行する方法


JSPのJSTL(JSP Standard Tag Library)に含まれる<fmt:message>タグは、指定したキーに対応するローカライズ済みメッセージをリソースバンドルから取得し、必要に応じてパラメトリック置換(パラメータの埋め込み)を実行します。多言語対応のWebアプリケーションを構築する際に欠かせない、国際化(i18n)対応のための重要なタグです。

主な属性

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

属性説明必須デフォルト値
key取得対象となるメッセージのキーいいえタグの本文(ボディ)
bundle使用するリソースバンドルいいえデフォルトバンドル
varローカライズされたメッセージを格納する変数名いいえページに直接出力
scopeメッセージを格納する変数のスコープいいえpage

使用例

以下の例では、<fmt:setLocale>でロケールを設定し、<fmt:setBundle>でリソースバンドルを読み込んだ上で、<fmt:message>タグを使って各キーに対応するメッセージを取得・表示しています。

<%@ 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:message Tag</title>
   </head>
   <body>
      <fmt:setLocale value = "en"/>
      <fmt:setBundle basename = "com.tutorialspoint.Example" var = "lang"/>
      <fmt:message key = "count.one" bundle = "${lang}"/><br/>
      <fmt:message key = "count.two" bundle = "${lang}"/><br/>
      <fmt:message key = "count.three" bundle = "${lang}"/><br/>
    </body>
</html>

上記のコードを実行すると、リソースバンドル内の各キーに紐づけられたメッセージが順に出力され、以下のような結果が得られます。

One
Two
Three

このように、<fmt:message>タグを活用することで、表示テキストをJSPから分離し、ロケールごとに適切な言語のメッセージを動的に切り替えることができます。var属性とscope属性を組み合わせれば、出力せずに変数へ格納して再利用することも可能です。


  1. GNOME Mapsのダウンロード方法とルートをPDFとしてエクスポートする手順

    「プライバシーが侵害されているのでは」という懸念からGoogleマップからの乗り換えをお考えですか?Linuxユーザーであれば、「GNOME Maps」を使えば現在地から目的地までの最適なルートを簡単に見つけられます。さらに便利なことに、地図とナビゲーション指示をPDFとしてエクスポートできるため、オフラインでも持ち歩けます。本記事では、その具体的な手順を詳しく解説します。 GNOME Mapsのダウンロードとインストール GNOME Mapsは、お使いのディストリビューションのソフトウェアセンターやパッケージマネージャーから入手できます。コマンドラインを使う場合は、UbuntuやDeb

  2. Windowsキーを有効または無効にする方法【5つの対処法】

    Windowsキーはすべてのキーボードに搭載されており、さまざまな操作で活用されています。Windowsキーを単体で押すとスタートメニューが開き、他のキーとの組み合わせでも利用できます。例えば、「Windowsキー + E」でエクスプローラーが開き、「Windowsキー + R」で「ファイル名を指定して実行」ダイアログが表示されるなど、便利なショートカットが多数あります。しかし、Windowsキーが正常に動作しないと、これらの操作が一切できなくなってしまいます。では、なぜこのような問題が発生するのでしょうか。Windowsキーが動作しない原因としては、キーボード自体の不具合、システム設定、ゲー