JSF ResourceBundle中的EL变量

web*_*rap 5 jsf localization seam resourcebundle internationalization

我在某个地方阅读(不再发现它)我可以在资源包中使用EL Expresions,然后在不更改*.xhtml文件的情况下使用它.

some.text=#{someBean.stepsLeft} more
Run Code Online (Sandbox Code Playgroud)

以不同语言切换变量的位置.但实际上它不会工作.我可以使用Interpolator类来处理解析或添加some.text.before some.text.after并让其中一个为空.如果可能的话,我宁愿使用它而不使用interpolator.interpolate().

Bal*_*usC 9

默认情况下,JSF resourcebundles不会解析EL.但是它默认支持MessageFormatAPI<h:outputFormat>和结合使用<f:param>.

some.text = {0} more
Run Code Online (Sandbox Code Playgroud)

<h:outputFormat value="#{i18n['some.text']}">
    <f:param value="#{someBean.stepsLeft}" />
</h:outputFormat>
Run Code Online (Sandbox Code Playgroud)

您甚至可以明确地将其设置为number类型,以便例如1000将显示为1,0001.000取决于视图区域设置.

some.text = {0,number} more
Run Code Online (Sandbox Code Playgroud)

有关更多格式选项,请参阅MessageFormatAPI文档.

  • 尽可能快.再次感谢你.什么JSF stackoverflow没有你;) (6认同)