jsp 从后台Map中取值

在jsp页面有的时候需要从后台传过来的Map中取特定值,并显示在页面上,网上有很多说怎么取值的,但是找了好久很多 都是讲的怎么循环取值,如果你需要在table中显示值那该怎么办呢?很多都没有讲,我把我的方法简单介绍下。

场景是这样的  下面是table的行数据

从后台controller返回分页信息,pageInfo.list是当前行数据,item.houseType是数据,但是这个是值(1或者2等等)并不是描述文字(类似这样1 支付宝 2 微信支付),但是显示的时候是要显示文字性描述的

下面的代码就是怎么来从map中取得文字显示的方法

<c:forEach  items="${pageInfo.list}" var="item">
<tr class="text-c">
    <td>${houseTypeEnumMap.get(item.houseType)}</td>
</tr>
</c:forEach>

但是这个里面有坑,那就是类型不匹配!!!!!明白这一点相信你就知道什么原因了。

许多人讲这个map的key是Long型的,这个可能不行

我的map是从枚举类型转换过来的,里面的key是int,描述是String,然后我就转成map<Long,String>传到前台,结果怎么也取不到文字描述

如果是后台传map<String,String>的,在jsp中用${houseTypeEnumMap.get(item.houseType)}也取不到值,因为item.houseType是int型的,类型不匹配也取不到。

最终想到的思路就是让行数据和map里的类型一致就可以取到文字。

1  map<String,String>   那就都转成string,jsp中

<c:set var="houseTypeKey" value="${fn:trim(item.houseType)}"/>  这样从int转成string了

后台的map转成map<String,String>格式

2   Map<Integer, String> 

jsp页面   <td>${houseTypeEnumMap.get(item.houseType)}</td> 

后台的map转成Map<Integer, String>  格式

 

以上两种方式都是可以的

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值