xpages应用程序中的表达式语言原型

时间:2017-05-29 12:06:50

标签: xpages el

在应用程序中,我通过字符串属性文件提供多种语言。

在菜单中,链接中的引用可能如下所示:

<xp:link
    text="#{strings.menu_label_mandate_request}"
    title="#{strings.menu_label_mandate_request}"
    value="/mandate.xsp" styleClass="plainLink">
</xp:link>

这很好。

现在我想在java类中定义链接,并通过重复控制循环它,但保持多语言支持。

在我的Menu类中,我创建了一个Page对象数组,并设置了如下属性:

this.navigation = new ArrayList<Page>();
        this.navigation.add(new Page("menu_label_mandate_request", "mandate.xsp", "fa fa-users", false));
...

我在xsp上添加了一个重复控件来启动类(通过托管bean):

<xp:repeat id="rptNavigation" rows="30"disableOutputTag="true" value="#{javascript:menu.navigation}" var="nav">

但是我在设置正确的原型设计时遇到了问题(如果可能):

<xp:link
    text="#{strings.nav.label}"
    title="#{strings.nav.label}"
    value="/mandate.xsp" styleClass="plainLink">
</xp:link>

所以我收到错误消息: java.util.MissingResourceException:无法找到bundle java.util.PropertyResourceBundle,key nav的资源 无法找到捆绑java.util.PropertyResourceBundle,密钥导航的资源

有没有人知道我忽略了什么?

1 个答案:

答案 0 :(得分:1)

您正在表达动态值nav应该作为文字对象而不是参考。写:

<xp:link
    text="#{strings[nav.label]}"
    title="#{strings[nav.label]}"
    value="/mandate.xsp" styleClass="plainLink">
</xp:link>