【发布时间】:2016-05-29 05:54:36
【问题描述】:
考虑到我有一个 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 标记中动态更改网格名称。所以我在gridColumn中使用了getText
<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" .... />
如您所见,我需要额外的循环和一些虚拟属性。
有没有更好的办法?!
【问题讨论】:
-
更好的方法是将构建器应用于模型并用实际名称替换键。您必须花费大量精力编写用于遍历模型的构建器,并为提供的消息格式转换变量。
-
您是否尝试设置
label而不是name? -
@DaveNewton,我也有同样的问题。名称对于 gridColumn 是必需的,设置标签对我没有帮助。
-
将名称设置为不同的,例如
bankName或其他。 -
@DaveNewton 我也试过了,没用。
标签: struts2 jqgrid struts2-jquery struts2-jquery-plugin struts2-jquery-grid