[英]Use jQuery grid instead of iterator in Struts 2 and Hibernate
[英]How to use getText in grid name of Struts 2 jquery grid pluing
考慮到我有一個必須在網格中顯示的AccountVO
對象List
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" .... />
如您所見,我需要額外的循環和一些虛擬屬性。
有沒有更好的辦法?!
您將首先向AccountVO
類添加屬性bankName
。
class AccountVO{
String bankCode; //which could be HSB,CITY
String bankName;
Float amount;
...
}
此屬性應具有網格中使用的數據的轉換值。 您不需要在 JSP 或 JS 代碼中轉換此數據,因為此邏輯僅屬於控制器。 最初它可以包含諸如bank.name
的鍵,然后將其轉換為從資源包中獲取的實際值。
如果您使用消息格式,可以簡化冗余消息
bank.name = The {1} Bank
然后您可以使用參數getText()
。
如果您不能使用參數化消息,則保持原樣並用資源包中的值替換屬性bankName
的消息鍵。
一旦你翻譯了一個數據模型,你就可以在網格中使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.