从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?已有的实现?
感谢您的协助。
答案 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>
它适用于:)