ZK - 在 ZUL EL 的映射键中将变量与常量字符串连接起来

ZK - concatenate a variable with a constant string in a map key in ZUL EL

A 有一个在页面范围内实现 java.util.Map 的自定义翻译器对象,我喜欢使用它

<checkbox id="cbCopy" label='${translator.copy}' />

它也适用于使用更复杂的 EL 映射语法的分层键:

<checkbox id="cbCopy" label='${translator['hierarchical.key.copy']}' />

当我在变量中有键时它也有效:

<zscript>
    desktopScope.put("someKey",sessionScope.get("customerCompany")+".copy");
</zscript>
<checkbox id="cbCopy" label='${translator[someKey]}' />

我的问题是在 EL 表达式中组合一个变量和一个常量字符串的分层键:

<zscript>
    desktopScope.put("customerCompany",sessionScope.get("customerCompany")+".");
</zscript>
<checkbox id="cbCopy" label='${translator[customerCompany+'copy']}' /> <!-- DOES NOT WORK!!! -->

有可能吗?

原因是页面上的几个(但不是全部)ZUL GUI 组件需要这种复合 i18n 键。

从 ZK 8 开始,您可以使用 +=:

连接字符串

${translator[customerCompany+='copy']}

参考:https://github.com/zkoss/zkbooks/blob/master/developersreference/developersreference/src/main/webapp/uiComposing/elExpression.zul

在之前的版本中,您可以使用标签库,cat