2010-08-02 5 views
5

Me gustaría recuperar la información del mensaje del paquete i18n (messages.properties in seam), pero no estoy seguro de cómo pasar la variable declarar/pasar la variable jobCount de forma dinámica en mi xhtmlCómo pasar dinámicamente argumentos a mensajes en el paquete de recursos

El código existente tiene este aspecto.

<s:decorate template="/layout/panel-name.xhtml"> 
    <ui:define name="label">User has been assigned #{jobCount} jobs</ui:define> 
</s:decorate> 

Respuesta

11

creo que esto debería funcionar:

<h:outputFormat value="#{msg.yourMessage}"> 
    <f:param value="#{myBean.jobCount}" /> 
</h:outputFormat> 
+0

Eso es de hecho el enfoque estándar. – BalusC

2

me encontré con este fragmento de código:

#{interpolator.interpolate(messages['myMessage'],jobCount)} 

Creo que esto es lo que estás buscando. Messages and placeHolders

contrario, puede utilizar la concatenación de cadenas (feo) si es un mensaje estático:

<s:decorate template="/layout/panel-name.xhtml"> 
    <ui:define name="label">#{messages['myMessage']} #{jobCount}</ui:define> 
</s:decorate> 

O si es un mensaje dinámico y está utilizando h: Mensaje de

Utilice esta sintaxis en el propiedades del mensaje:

myMessage = El usuario ha sido asignado {1} empleos

Y luego, cuando se crea el mensaje en el grano

@Name("myBean") 
public class Bean { 
    @In(create = true) FacesMessages facesMessages; 
    @In Map messages; 

    public String action() { 
     // Action here 
     facesMessages.add(messages.get("myMessage"), jobCount); 
    } 
} 
+0

lo intentará salir – Sam

Cuestiones relacionadas