1.使用extremetable作为前端表格输出;
2.该table内容如下:
地区代码 地区名称 行政区划
001 中国 country
002 四川 province
.......
3.想达到如下显示目标:
地区代码 地区名称 行政区划
001 中国 国家
002 四川 province
也就是:将原来的英文显示转换成汉字显示
4.目前采用的方法:
1)将行政区划维护为一个enum,名为AdministrativeLevel
2)在control层中构造一个map[key=行政区划代码, value=行政区划名称]
3)将map传到jsp中
4)用el表达式标签读取如下:
<ec:table items="regionList" var="region" scope="request" action="">
.....
<ec:column property="administrativeLevel" title="region.administrativeLevel">
${map["AdministrativeLevel.${region.administrativeLevelCode}"]}
</ec:column>
.....
</ec:table>
其中:${region.administrativeLevelCode}表示当前行的行政区划代码;
map是代码与实际名称的对应表;
所以希望${map["AdministrativeLevel.${region.administrativeLevelCode}"]}能根据每行值的不同,取出相应的名称.
结果当然是null,因为不支持嵌套el.
这种情况当如何解决呢?
extremeTable中的疑难问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
catstiger 2008-11-05 22:46关注标准的办法是实现Cell接口或者继承org.extremecomponents.table.cell.AbstractCell类
/ec:column
下面是例子:
[code="java"]
/**-
解决null对象的显示问题。
*
/
public final class DisplayCell extends AbstractCell {
/*- @see AbstractCell#getExportDisplay(TableModel, Column) */ public String getExportDisplay(TableModel model, Column column) { return column.getPropertyValueAsString(); }
/**
- 取得Cell Value,如果是null,则输出 */ protected String getCellValue(TableModel model, Column column) { String str = column.getValueAsString(); if (column.getValue() == null || "null".equals(str)) { return " "; } return StringUtil.stripTags(str); } }
[/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报-