JSF2 ResourceBundleLoader覆盖?

时间:2010-04-29 21:28:53

标签: java jsf el jsf-2 resourcebundle

从ResourceBundle加载时,我需要解析包含EL表达式的资源消息。基本上我有许多包含文本的属性文件。部分文本如下所示:

welcomeText =欢迎#{userbean.name}

我目前唯一可行的方法是实现自定义taglib,而不是说:

<f:loadBundle var="messages" basename="application.messages"/>

我必须使用

<mytaglib:loadBundle var="messages" basename="application.messages"/>
#{messages.welcomeText}

如果用户名为“User1”,则应输出

Welcome User1

然后我的实现将使用一个自定义的ResourceBundle类来覆盖handleGetObject,使用ELResolver来解析变量等....想法? suggestings?已有的实现?

感谢您的协助。

1 个答案:

答案 0 :(得分:1)

而是使用<h:outputFormat><f:param>来显示参数化文本。它由MessageFormat API支持,将应用API的javadoc中描述的相同规则。

E.g。

welcomeText=Welcome {0}

<h:outputFormat value="#{messages.welcomeText}">
    <f:param value="#{userbean.name}" />
</h:outputFormat>

它适用于:)