背景Java:実行時にデータベースからResourceBundleにプロパティを追加するにはどうすればよいですか?
私はMavenを使用してJava Webアプリケーションを開発しています。私はこのパスにResourceBundlesを作成しました。src/main/resources/i18n/LanguageBundle_xx_XX.propertiesです。
すべてが完璧に動作し、フロントエンドですべての作業を行っています(JSTLを使用)。
通報
次いで、ユーザは形式でMySQLデータベースに格納されているフロントエンドから、キー/値のペアを作成することができる:KEY | VALUE
ユーザーに最初のjspページを表示する前に、すべての設定を行う初期化サーブレットがあります。
この初期化サーブレットでは、データベースからすべてのKEY/VALUEペアを取得していますが、最初にjspページが表示されたときに翻訳が準備できるように、それらをLanguageBundleに追加します。
私がこれまで試した:
- はDB
- 反復処理からすべてのキー/値のペアを返すKEYが
- LanguageBundle_xx_XXに存在しない場合の値は
- を返さKEY/VALUEをproperty.put( "KEY"、 "VALUE")で追加します。
これでそのプロパティが追加されますが、そのスコープ外の特定のプロパティ(たとえば、他のサーブレット、jsp)にアクセスしようとすると、特定の.propertiesファイルに存在しないため失敗します。
この問題を解決するにはどうすればよいですか?
これまでに作成したものは、ResourceBundleではなくプロパティファイルです。 * Object *であるResourceBundleを作成するさまざまな方法を調べる必要があります。 – EJP
私は@EJPのアイデアにはメリットがあると感じます。私は同じだった。問題はプロパティファイルではなく、問題はファイルからだけでなくデータベースからも読み取れるようにresourcebundleを作成することです。 http://stackoverflow.com/questions/2451049/do-resource-bundles-in-java-support-runtime-string-substitutionを参照してください。 –