4. Beanタグライブラリ2この章では、Beanタグライブラリにおける残りの主要なタグについて説明します。 4.1. messageタグmessageタグはメッセージリソースからメッセージを検索して表示するタグです。また多言語対応しており、ロケールに応じて表示するメッセージの切り換えが可能です。リソースバンドルに似ていると言えるでしょう。まずmessageタグを使用する前に、メッセージリソースをアプリケーションに登録する方法について説明します。メッセージリソースの登録はStruts設定ファイル内で行います。 <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> ... <message-resources parameter="sample.ApplicationResources" /> </struts-config> <message-resources>タグを用いてメッセージリソースの登録を行います。タグの場所は<action-mappings>よりも後ろで、<struts-config>のほぼ一番最後です。詳細についてはStruts付属のDTDファイルを参考にして下さい。message-resourcesタグの属性で使用するのはparameterのみです。ここにメッセージリソースの基底名を指定します。 さてメッセージリソース自体はプロパティファイルで作成します。そのファイル名はリソースバンドルと同じ形式を取ります。 (基底名)_(ロケール).properties サンプルで日本語のメッセージリソースを作成する場合は、「sample.ApplicationResources_ja_JP.properties」か「sample.ApplicationResources_ja.properties」。英語の場合は、「sample.ApplicationResources_en.properties」などとなります。ロケールを省略して、「sample.ApplicationResources.properties」でも構いません。検索方法もリソースバンドルと同じなので、該当する場合が無い場合にのみ、ロケールのないメッセージリソースが使用されます。 またメッセージリソースの検索場所もリソースバンドルと同じで、CLASSPATHから検索されます。Servletの場合は「WEB-INF/classes」ディレクトリがCLASSPATHのルートになるので、プロパティファイルもこれ以下に置く必要があります。従ってサンプルの場合は「WEB-INF/classes/sample」以下に「ApplicationResources_(ロケール).properties」というファイルを置かなければなりません。 最後にmessageタグの説明に戻ります。messageタグで主に使用されるのはkey属性で、メッセージリソースからメッセージを検索する場合に使用されます。例えばメッセージリソースに hello=Hello World! というプロパティがあり、JSPページに <bean:message key="hello" /> とあると、「Hello World!」というメッセージが表示される事になります。その他の主要な属性は以下の通りです。
messageタグにおいても、リソースバンドルと同じくロケールに応じたメッセージリソースからプロパティが検索されます。しかしその際のロケールは、クライアントのロケールに従います。クライアントのロケールの判断には、HTTPのAccept-Languageヘッダが使用されます。多くのブラウザには、このヘッダの値を変更する機能があります。 なおメッセージリソースは、ActionServletの起動時(struts-config.xmlが読み込まれる時)に読み込まれます。従ってmessageタグを使用する場合には、予めActionServletが起動している必要があります。以下のようにweb.xmlでActionServletに<load-on-startup>要素を指定すると良いでしょう。注意してください。 <servlet> (実習課題1)以下のWebアプリケーションを、Strutsを用いて作成しなさい。
|
![]()
![]()
|