JSF 2.0:属性文件中的运行时变量

时间:2011-12-06 21:44:01

标签: jsf jsf-2

我们的应用程序中的所有文本都是从属性文件中读取的 e.g。

<h:outputText value="#{text['fill.form']}"/>

text是解析为Text.properties的资源包。

Text.properties
fill.form=Please fill out the form below

还有其他一些我们需要在属性中运行时变量的实例 e.g。

welcome.user=Welcome #{name.last}, #{name.first} to our site

name是一个托管bean,其属性在运行时首先得到解析。

但是,在运行时未解析名字和姓氏。而是用户看到以下

Welcome #{name.last}, #{name.first} to our site

解决这个问题的方法是什么? 我应该编写一个自定义EL解析器来解析属性中的文本以及它内部的任何运行时属性。

1 个答案:

答案 0 :(得分:1)

我相信您希望使用h:outputFormat来完成此任务。在您的示例中,您可以执行此操作:

<h:outputFormat value="#{text['welcome.user']}">
    <f:param value="#{name.last}"/>
    <f:param value="#{name.first}"/>
</h:outputFormat>

为此,您需要将欢迎信息更改为:

welcome.user=Welcome {0}, {1} to our site