我在某个地方读到(再也找不到它了(,我可以在资源包中使用EL Expresions,然后在*.xhtml文件中不做任何更改地使用它。
some.text=#{someBean.stepsLeft} more
以在不同语言中切换变量的位置。但实际上它不起作用。我可以使用Interpolator类来处理解析,或者在some.text.after之前添加some.text.b,并让其中一个为空。如果可能的话,我更希望它在没有interpolator.interpole((的情况下使用。
JSF资源捆绑包默认不解析EL。但默认情况下,它支持MessageFormat
API与<h:outputFormat>
和<f:param>
组合。
some.text = {0} more
带有
<h:outputFormat value="#{i18n['some.text']}">
<f:param value="#{someBean.stepsLeft}" />
</h:outputFormat>
您甚至可以显式地将其设置为number
类型,以便例如1000
将根据视图区域设置显示为1,000
或1.000
。
some.text = {0,number} more
有关更多格式选项,请参阅MessageFormat
API文档。