2011-07-01 14 views
5

leo en algún lugar (ya no lo encuentro) que puedo usar EL Expresions en el paquete de recursos y luego usarlo sin cambios en los archivos * .xhtml.variable EL en JSF ResourceBundle

some.text=#{someBean.stepsLeft} more 

para cambiar la posición de la variable en diferentes idiomas. Pero en realidad no funcionará. Puedo usar la clase Interpolator para manejar el análisis sintáctico o agregar some.text.before some.text.after y dejar que uno de ellos se vacíe. Preferiría usarlo sin interpolator.interpolate() si es posible.

Respuesta

9

JSF resourcebundles no resuelve por defecto EL. Sin embargo, por defecto es compatible con MessageFormat API en combinación con <h:outputFormat> y <f:param>.

some.text = {0} more 

con

<h:outputFormat value="#{i18n['some.text']}"> 
    <f:param value="#{someBean.stepsLeft}" /> 
</h:outputFormat> 

Usted puede incluso hacer que sea explícitamente un tipo number de manera que, por ejemplo, 1000 se mostrará como 1,000 o 1.000 según la configuración regional de la vista.

some.text = {0,number} more 

Para obtener más opciones de formato, consulte el MessageFormat API documentation.

+6

tan rápido como podría ser. Gracias de nuevo. ¿Qué sería JSF stackoverflow sin ti?) – webstrap