如何缩短资源包调用?复合组件?

时间:2012-02-25 01:07:45

标签: java jsf resourcebundle

我对内置的JSF资源包可能性并不满意,例如:

<h:outputFormat value="#{messages['form.label.create']}">

因此,我尝试编写自己的复合组件来缩短这些内容:

<composite:interface>

    <composite:attribute name="value" />
    <composite:attribute name="p1" />

</composite:interface>


<composite:implementation>
    <h:outputFormat value="#{messages['cc.attrs.value']}"> //text.properties
        <f:param value="#{cc.attrs.p1}" />
    </h:outputFormat>
</composite:implementation>

用法:

<cc:messages value="label.name" p1="#{test}" />

但是表达式messages['cc.attrs.value']在资源包中查找cc.attrs。*而不是获取值内容。

我可以忘记我的做法吗?有谁知道如何做类似的事情?

1 个答案:

答案 0 :(得分:2)

尝试改为编写messages[cc.attrs.value]

JSF将'cc.attrs.value'解释为字符串值而不是变量名。