2010-08-02 66 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

相关问题