在生产中希望用户能够写一个属性文件和文件上传到我们的生产服务器。 一旦到位,将包含所需的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
*/
}
有任何想法吗? 基本上我想动态皮肤通过ApplicationScoped ManagedBean是大干快上我的Tomcat 7服务器的启动初始化我RichFaces的应用。 理想情况下,皮肤文件的名称将可能从数据库或不同的属性文件中读取动态用户输入。
编辑1:我已经得到它加载属性文件,然后我手动(通过Java代码)试图通过使用插入的context-param 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
文件?
谢谢