2011-07-01 71 views
5

我在某處閱讀(不再發現它),我可以在資源包中使用EL Expresions,然後在不改變* .xhtml文件的情況下使用它。JSF ResourceBundle中的EL變量

some.text=#{someBean.stepsLeft} more 

以不同語言切換變量的位置。但實際上它不會工作。 我可以使用Interpolator類來處理解析或在some.text.after中添加some.text.before並讓其中一個爲空。如果可能,我寧願使用它,而不使用interpolator.interpolate()。

回答

9

默認情況下,JSF resourcebundles不會解析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,0001.000

some.text = {0,number} more 

有關更多格式選項,請參閱MessageFormat API documentation

+6

儘可能快。再次感謝你。沒有你,JSF stackoverflow會是什麼;) – webstrap