栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

多个枚举的国际化(枚举值的翻译)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多个枚举的国际化(枚举值的翻译)

好的,现在这是完整且随时可用的解决方案:(感谢@Joop Eggen)

上课

public final class EnumTranslator {  public static String getMessageKey(Enum<?> e) {    return e.getClass().getSimpleName() + '.' + e.name();  }}

使其成为自定义EL功能

<?xml version="1.0" encoding="UTF-8"?><facelet-taglib 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"><namespace>http://example.com/enumi18n</namespace><function>    <function-name>xlate</function-name>    <function-class>your.package.EnumTranslator</function-class>    <function-signature>String getMessageKey(java.lang.Enum)</function-signature></function></facelet-taglib>

将taglib添加到您的web.xml

<context-param>    <param-name>javax.faces.FACELETS_LIBRARIES</param-name>    <param-value>/WEB-INF/enumi18n.taglib.xml</param-value></context-param>

具有这样的属性文件enum_en.properties和enum_yourlanguage.properties

TransferStatus.NOT_TRANSFERRED = Not transferredTransferStatus.TRANSFERRED = Transferred

将属性文件作为资源包添加到您的faces-config.xml中

    <resource-bundle>        <base-name>kk.os.obj.jsf.i18n.enum</base-name>        <var>enum</var>    </resource-bundle>

将自定义标签库添加到您的xhtml文件中

<html ... xmlns:l="http://example.com/enumi18n">

并且-voilà-您现在可以在jsf中访问已转换的枚举值:

<h:outputText value="#{enum[l:xlate(order.transferStatus)]}" />


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515479.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号