java吧 关注:1,269,847贴子:12,775,235
  • 18回复贴,共1

【求助】EL表达式中如何将Long强转至String类型

只看楼主收藏回复

在session中存在一个Map<String,String> map集合
map的key为0到100的String类型
在jsp中,我想用<c:foreach begin="0" end="100" var="index">${map[index]}</c:foreach>的方式遍历取值,但是结果发现,因为foreach中,index为Long类型,而map的key为String类型,无法取到值,百度了很久没有找到如何在EL表达式中Long强转String。
PS:我知道可以把map类型变更为Map<Long,String>或Map<Integer,String>来解决。我来问的主要目的是想问EL表达式的强制类型转换,谢谢~


IP属地:上海1楼2013-12-16 10:07回复
    不懂帮顶


    IP属地:北京2楼2013-12-16 10:07
    收起回复
      2025-07-18 12:47:01
      广告
      木有人知道么?


      IP属地:上海3楼2013-12-16 10:17
      回复
        我只想问为何不用List……


        IP属地:广西4楼2013-12-16 10:24
        收起回复
          为什么不直接遍历map.value


          IP属地:河南5楼2013-12-16 10:44
          收起回复
            唔,找到一种解决办法,但是感觉绕了一圈
            先用c:set拼接一个字符串,EL表达式会自动转换成String
            然后再使用截取,得到的就是String类型的数字了。
            eq:
            <c:set var="temp" value='K${index}'/>
            ${map[fn:substringAfter(temp, "K")]}
            不知道有木有更直接的方法,不用这么绕一圈0.0
            不过总算困扰了两天的问题也算得到了一个解决办法.....


            IP属地:上海6楼2013-12-16 10:56
            回复
              我是直接在EL表达式里面用toString(),结果没问题,但是eclipse中那一行前面永远有个红叉


              IP属地:北京7楼2014-07-16 22:40
              收起回复
                感觉是被挖坟了0.0


                IP属地:上海9楼2014-07-17 21:22
                回复
                  2025-07-18 12:41:01
                  广告
                  第一眼看上去,妈的,怎么还有问这种问题的。。。 仔细看时间,原来如此


                  IP属地:安徽10楼2021-06-04 17:45
                  收起回复