我们的应用程序中的所有文本都是从属性文件中读取的 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解析器来解析属性中的文本以及它内部的任何运行时属性。
答案 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