如何在 Struts 2 jquery 网格插件的网格名称中使用 getText
How to use getText in grid name of Struts 2 jquery grid pluing
考虑到我有一个 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 变量现在包含国际化名称,这是不正确的。
为了解决这个问题,我使用了getText
。例如:
for(List<Account>: account ){
account.setI18nBankName( getText('bank.name.'+ account.getBankCode() ) );
}
现在我可以使用:
<sjg:gridColumn name="i18nBankName" .... />
如你所见,我需要额外的循环和一些虚拟 属性。
还有更好的方法吗?!
您可以先将 属性 bankName
添加到 AccountVO
class。
class AccountVO{
String bankCode; //which could be HSB,CITY
String bankName;
Float amount;
...
}
此 属性 应该具有网格中使用的数据的翻译值。您不需要在 JSP 或 JS 代码中转换此数据,因为此逻辑仅属于控制器。最初它可以包含一个键,例如 bank.name
,然后将其转换为从资源包中获取的实际值。
如果使用消息格式,可以简化冗余消息
bank.name = The {1} Bank
然后你可以使用一个参数来getText()
。
如果您不能使用参数化消息,请保持原样并将 属性 bankName
中的消息键替换为资源包中的值。
翻译完数据模型后,您就可以在网格中使用它。
考虑到我有一个 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 变量现在包含国际化名称,这是不正确的。
为了解决这个问题,我使用了getText
。例如:
for(List<Account>: account ){
account.setI18nBankName( getText('bank.name.'+ account.getBankCode() ) );
}
现在我可以使用:
<sjg:gridColumn name="i18nBankName" .... />
如你所见,我需要额外的循环和一些虚拟 属性。
还有更好的方法吗?!
您可以先将 属性 bankName
添加到 AccountVO
class。
class AccountVO{
String bankCode; //which could be HSB,CITY
String bankName;
Float amount;
...
}
此 属性 应该具有网格中使用的数据的翻译值。您不需要在 JSP 或 JS 代码中转换此数据,因为此逻辑仅属于控制器。最初它可以包含一个键,例如 bank.name
,然后将其转换为从资源包中获取的实际值。
如果使用消息格式,可以简化冗余消息
bank.name = The {1} Bank
然后你可以使用一个参数来getText()
。
如果您不能使用参数化消息,请保持原样并将 属性 bankName
中的消息键替换为资源包中的值。
翻译完数据模型后,您就可以在网格中使用它。