2010-08-02 62 views
5

我想從i18n包(seam.this中的messages.properties)中檢索消息信息,但我不確定如何動態地通過declare /傳遞jobCount變量在我的xhtml中如何動態地將參數傳遞給資源包中的消息

現有的代碼如下所示。

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

回答

11

創建消息,我認爲這應該工作:

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

這的確是標準的做法。 – BalusC 2010-08-03 12:08:56

2

我發現這個代碼片段:

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

我覺得這是你要搜索的內容。 Messages and placeHolders

否則,您可以使用字符串連接(醜陋的),如果它是一個靜態消息:

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

或者,如果它是一個動態的消息,您正在使用H:信息

使用此語法在消息屬性:

myMessage =用戶已被分配{1}作業

然後當你在bean

@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

會嘗試一下 – Sam 2010-08-02 10:54:18

相關問題