我在本地文件系统中有一个属性文件。 我已经使用了一个XHTML文件来创建一个UI。 在这个文件中,我已经硬编码了UI元素的名称。是否有任何方法从属性文件中获取这些名称?从XHTML文件中的属性文件中获取值
-2
A
回答
0
有几个选项,假设你有在以下位置messages.properties
src
main
java
resources
com
example
messages.properties
您可以使用在faces-config.xml
的resource-bundle
标签,使其应用广泛
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>fr</supported-locale>
</locale-config>
<resource-bundle>
<baseName>com.example.messages</baseName>
<var>msgs</var>
</resource-bundle>
</application>
然后它可以在你的XHTML中像这样访问(注意使用语言环境可以让你选择拥有messages_fr.properties)
<f:view locale="en">
#{msgs.keyName}
</f:view>
<f:view locale="fr">
#{msgs.keyName}
</f:view>
您还可以使用<f:loadBundle>
<f:view locale="en">
<f:loadBundle baseName="com.example.messages" var="msgs" />
#{msgs.keyName}
</f:view>
<f:view locale="fr">
<f:loadBundle baseName="com.example.messages" var="msgs" />
#{msgs.keyName}
</f:view>
如果你需要的资源包是外部的一种方式可能是下面的方法。
设置绝对路径的包在你的web.xml
<context-param>
<param-name>bundlePath</param-name>
<param-value>absolute path to your properties file</param-value>
</context-param>
创建自己的ResourceBundle类
package com.example;
import java.io.FileReader;
import java.util.Enumeration;
import java.util.ResourceBundle;
import java.util.PropertyResourceBundle;
import javax.faces.context.FacesContext;
public class MyBundle extends ResourceBundle {
public MyBundle() throws FileNotFoundException {
String configPath = FacesContext.getCurrentInstance().getExternalContext().getInitParameter("bundlePath")
setParent(new PropertyResourceBundle(new FileReader(configPath)));
}
@Override
public Object handleGetObject(String key) {
return parent.getObject(key);
}
@Override
public Enumeration<String> getKeys() {
return parent.getKeys();
}
}
在faces-config.xml
注册它按通常
<resource-bundle>
<bundleName>com.example.MyBundle</bundleName>
<var>msgs</var>
</resource-bundle>
相关问题
- 1. 从属性文件获取布尔值
- 2. Java:从属性文件获取值
- 3. 从属性文件中获取常量?
- 4. 从文件中获取扩展属性
- 5. 从属性文件中读取值
- 6. Mule Expression组件无法从属性文件中获取值
- 7. 在Javascript中从属性文件中获取值
- 8. 从GWT中的属性文件获取密钥的值
- 9. 没有获得在context.xml文件从属性文件中值
- 10. 从XML文件中的节点获取属性值
- 11. jquery对话框从属性文件中获取的URL值
- 12. Spring 3.0 EL如何从属性文件中获取属性?
- 13. 从属性文件中读取hibernate注释属性值
- 14. Spring从属性文件中获取枚举值
- 15. 如何在Spring中从属性文件获取值
- 16. 将属性值获取到XML文件
- 17. 从Python中的文本文件获取属性
- 18. 从href标题的属性文件中获取文本
- 19. 如何读取属性文件并获取wsdl文件中的值java
- 20. 在Java中获取文件属性
- 21. 获取文件属性
- 22. 获取属性MongoMapper文件
- 23. 从xml文件获取属性php
- 24. Python - 从常量文件获取属性
- 25. 如何从属性文件读取值?
- 26. 从属性文件中读取JOOQ代码Gen配置文件中的值xml
- 27. java.lang.nullpointerexception从XML文档中获取属性文件
- 28. Liferay:从属性文件中的portal.normal.vm中获取URL
- 29. 如何在OneDrive中获取文件的文件属性?
- 30. 如何获取Android资产文件夹中的文件属性?
什么“UI元素的名称”是什么?目前的答案假定国际化,它不是远程看起来像“UI元素的名称”。 – BalusC
鉴于他最近的问题http://stackoverflow.com/questions/39098719/properties-file-in-java谈论ResourceBundles我认为(也许希望)我的假设是正确的 – PDStat
UI元素的名称意味着标签 – vinayaka