好了,现在这是完整的和随时使用的解决方案:(感谢@Joop埃根)
使类
public final class EnumTranslator {
public static String getMessageKey(Enum> e) {
return e.getClass().getSimpleName() + '.' + e.name();
}
}
使它成为一个自定义EL函数
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-facelettaglibrary_2_0.xsd"
version="2.0">
http://example.com/enumi18n
xlate
your.package.EnumTranslator
String getMessageKey(java.lang.Enum)
的taglib添加到你的web.xml
javax.faces.FACELETS_LIBRARIES
/WEB-INF/enumi18n.taglib.xml
有属性文件enum_en.properties和enum_yourlanguage.properties这样
TransferStatus.NOT_TRANSFERRED = Not transferred
TransferStatus.TRANSFERRED = Transferred
属性文件作为资源包添加到您的面孔,配置。XML
kk.os.obj.jsf.i18n.enum
enum
自定义标签库添加到您的XHTML文件
而且 - 瞧 - 你现在可以在JSF访问翻译枚举值: