2010-08-02 19 views
5

Chciałbym pobrać informacje o wiadomościach z pakietu i18n (messages.properties w szwie), ale nie jestem pewien, jak przekazać deklarację/przekazać zmienną jobCount dynamicznie w moim xhtmlJak dynamicznie przekazywać argumenty do wiadomości w pakiecie zasobów

Istniejący kod wygląda następująco.

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

Odpowiedz

11

myślę, że to powinno działać:

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

To rzeczywiście średnia podejście. – BalusC

2

Znalazłem ten fragment kodu:

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

myślę, że to jest to, czego szukasz. Messages and placeHolders

W przeciwnym razie można używać konkatenacji ciągów (brzydki), jeżeli jest to statyczna wiadomość:

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

Lub jeśli jest to dynamiczny wiadomość i używasz H: wiadomość

użyć następującej składni w właściwości wiadomość:

myMessage = Użytkownik został przypisany {1} Praca

A następnie podczas tworzenia wiadomości w fasoli

@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

będzie go wypróbować – Sam

Powiązane problemy