- - PR -
ApplicationResources.propertiesからデータを取得したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-09 19:44
StrutsのActionクラスの中でApplicationResources.propertiesに設定されたパラメータを取り出したいのですがやり方を教えて下さい。
| ||||
|
投稿日時: 2005-06-09 20:06
Actionクラスの中で、getResources(req).getMessage("hoge.hoge");
って書けば取れますよ。 | ||||
|
投稿日時: 2005-06-10 11:00
ありがとうございます。
Actionクラスで教えていただいた通りにしたらできましたがサーブレットと関係ないユーティリティ的なクラスでは使えませんでした。 getResourcesはユーティリティ的なクラスでも使えるのでしょうか? (ServletContextをどうやって持ってくれば良いのかもわかりません) | ||||
|
投稿日時: 2005-06-10 12:39
ユーティリティ的なクラスって何を示していますか?
何をしたいのか良くわかりません。 状況を正しく伝えられないなら、せめて何をしたいのかハッキリしましょうよ。 その方が解決が早いと思います。
getResourceはActionクラスのprotectedメソッドなので、 Actionもしくはサブクラスからしか使えません。 これくらいのことはStrutsのJavadocを見ればわかると思いますが・・・ | ||||
|
投稿日時: 2005-06-10 13:32
strutsのソースをみればAction#getResourcesでなにをやっているのか分かると思います。
それをもとに実装は可能かと。 ただしstrutsのバージョンが上がったときの保証はないし、 そもそもstruts依存のクラスをActionクラス以外の層で使用することにも抵抗を感じます。 もしも取得したい値がメッセージではなくシステムパラメータだとしたら、 専用のプロパティファイルを用意したほうがいいのではないでしょうか? | ||||
|
投稿日時: 2005-06-10 15:30
すみませんでした。 やりたいのはプログラムのパラメータを外部から与えたいのです。 プロパティファイルの使い方を調べてみます | ||||
|
投稿日時: 2005-06-10 23:22
なら、java.util.ResourceBundleを調べてみてください。
StrutsのMessageResourceもデフォルトでは内部でResourceBundleを使用しています。 使い方は簡単で、クラスパス上にクラス同様プロパティファイルを配置します。 ResourceBundle bundle = ResourceBundle.getBundle("hoge.バンドル名"); 見たいな使い方をします。 hoge.piyoパッケージに配置したfoo.propertiesを読み込む場合、 hoge.piyo.fooで取得が可能です。 | ||||
|
投稿日時: 2005-06-11 11:04
ご指導ありがとうございます。 また何かありましたらよろしくお願いします。 |
1