考虑到我有一个必须在网格中显示List
的对象AccountVO
AccountVO{
bankCode; //which could be HSB,CITY
amout;
...
}
在资源包中我有
bank.name.HSB = The HSB Bank
bank.name.CITY = The CITY Bank
......
bank.name.HSB = بانک اچ اس بی
bank.name.CITY = بانک شهر
我试图动态更改gridColumn
标签中的网格名称。所以我用getText
在gridColumn
<sjg:gridColumn name="%{getText('bank.name.'+bankCode)}" .... />
它不起作用。
当我看到生成的代码时,我在下面找到:
options_gridtable_colmodels_بانک شهر = {};
options_gridtable_colmodels_بانک شهر.name = "بانک شهر";
options_gridtable_colmodels_بانک شهر.jsonmap = "بانک شهر";
如您所见,javascript 变量现在包含 i18n 名称,这是不正确的。
为了解决这个问题,我getText
在行动中使用。例如:
for(List<Account>: account ){
account.setI18nBankName( getText('bank.name.'+ account.getBankCode() ) );
}
现在我可以使用:
<sjg:gridColumn name="i18nBankName" .... />
如您所见,我需要额外的循环和一些虚拟属性。
有没有更好的办法?!