本番環境では、ユーザーがプロパティ ファイルを作成し、そのファイルを本番サーバーにアップロードできるようにしたいと考えています。これが配置されると、richfaces スキンに必要なプロパティが含まれます。このファイルの名前は何でもかまいません。
WEB-INF/myprop.properties
開発中、他のすべてのプロパティ ファイルがある内部からプロパティ ファイルを読み取る必要があります。このファイルの名前は何でもかまいません。
これまでのところ、私はこれを行ってきました:
@ManagedBean(name="myCustomSkin ")
@ApplicationScoped
public class MyCustomSkin extends SkinFactoryImpl {
/*
* In here I call
* Skin s = this.buildSkin(context, "skin"); in my constructor
* I am also overriding the loadProperties() method so it load my properties just fine
* For some reason I can't get my app to actually use the properties I have loaded
*/
}
何か案は?基本的に、Tomcat 7 サーバーの起動時に初期化される ApplicationScoped ManagedBean を介して、richfaces アプリケーションを動的にスキンしたいと考えています。理想的には、スキン ファイルの名前は、データベースまたは別のプロパティ ファイルから読み取られる可能性のある動的なユーザー入力になります。
編集1:プロパティファイルをロードするためにそれを取得し、手動で(Javaコードを介して)次のように値を取得する文字列変数であるservletContext.setInitParameter("org.richfaces.skin", this.skin);
場所を使用してコンテキストパラメータを挿入しようとしました:そして、上記が表示されている場合はから返されるスキン オブジェクトだけです。これは、スキンがクラスパスなどに配置されていないと想定しているためです。this.skin
this.skin = s.getName();
s
this.buildSkin
SkinNotFound Exception
編集 2: JSF 2.1.17、Richfaces 4.3.0、Tomcat7 の使用
編集 3: ファイルを別のディレクトリで探すように richfaces に指示する方法はありmyskin.skin.properties
ますか?
ありがとう