我前段时间遇到过你的问题。我自己的解决方案是创建一个Constants
文件,将所有与系统相关的变量放入其中。例如,
public class Constants {
// Local development
private static final String PHOTO_FOLDER = "C:\path\to\photos\Windows";
private static final String APP_PATH = "localhost:8080/project/";
// Online server
private static final String PHOTO_FOLDER = "/path/to/photos/Linux";
private static final String APP_PATH = "www.project.com/";
}
上述类中的任何常量都可以在任何@ManagedBean
using中访问Constants.PROPERTY
。如果您想访问.xhtml
页面内的常量,您可以创建一个.properties
具有类似内容的文件:
// Local development
PHOTO_FOLDER = C:\path\to\photos\Windows
APP_PATH = localhost:8080/project/
// Online server
PHOTO_FOLDER = /path/to/photos/Linux
APP_PATH = www.project.com/
然后在您的文件中声明此.properties
文件faces-config.xml
为ResourceBundle
:
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<application>
<resource-bundle>
<base-name>your_package.constants</base-name>
<var>constants</var>
</resource-bundle>
</application>
</faces-config>
此时,您可以.xhtml
使用#{constants.PROPERTY}
.
取决于您在哪里部署应用程序,只需注释掉不必要的行 :)。
此外,当您处理文件名时,只需使用File.separator
分隔文件夹就可以了:P。
我正在做的绝对不是最佳实践,但它是实现您想要的东西的一种非常简单的方法:P。BalusC 的答案应该是目前处理这些组件时的最佳实践。所以也许混合动力车应该很酷?:)