我在本地文件系統中有一個屬性文件。 我已經使用了一個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