缘由 

  El表达式在调用Map的时候,后台传过来的Map的key不一定是一个固定的值,需要根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个key,对于平常使用开固定的key的我来说,以前学过也忘记了,一时想不出怎么做,现在我们来复习一下。

 情景

  假设有一个情景:我们后台返回一个对象的list,我们根据对象的id作为key放一些关键的值作为value存入Map中。而前台负责显示Map中的关键指标。

@RequestMapping(value="/test")
public String test(Model m){
List<Student> lists = service.getAll();
Map<String,String> map = new HashMap<String,String>(); for(Student s : lists){
if(s.getScore() > 80)
map.put(s.getId(),"良");
} m.addAttribute("lists", lists);
m.addAttribute("map", map); return "index";
}

  没错,我们的目的就是将大于80分的同学显示评级为良。接下来是前端的处理。

  先引入,标签。

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

  主体内容:

<table>
    <tr>
      <td>姓名</td>
      <td>分数</td>
      <td>评级</td>
    </tr>
<c:forEach items="${lists }" var="s">
<tr>
<td>${s.name }</td>
<td>${s.score}</td>
<td>${map[s.id]}</td>
</tr>
</c:forEach>
</table>

  大概就是这样子。如果map的key是一个复杂的组合,例如map(s.getId()+"-3班","良");这样子要怎么获取key呢?同样是上面的代码:

<table>
    <tr>
      <td>姓名</td>
      <td>分数</td>
      <td>评级</td>
    </tr>
<c:forEach items="${lists }" var="s">
    <c:set var="sid" value="${s.id }${-3班}"></c:set>
<tr>
<td>${s.name }</td>
<td>${s.score}</td>
<td>${map[sid]}</td>
</tr>
</c:forEach>
</table>

  如果要对字符串做更复杂的操作,可以自己做标签库,或者使用<%@  taglib  uri="http://java.sun.com/jsp/jstl/functions"   prefix="fn"%>这个标签库。

   

EL表达式怎么获取Map的动态key?的更多相关文章

  1. 获取map集合中key、value

    获取Map集合类中key.value的两种方法 方法一:利用Set集合中的keySet()方法 Map<String,String> map = new HashMap<String ...

  2. 在jsp中怎么使用Cookie?el表达式中获取cookie的问题

    初学jsp,不清楚cookie的使用方法,希望高手指点一下!   一般来说有两种办法,在JSP中使用Java的嵌入脚本. 例如: 写入Cookie <html> <head>. ...

  3. map.keySet()获取map全部的key值

    map.keySet()获取map全部的key值   public static String getUrlWithQueryString(String url, Map<String, Str ...

  4. EL表达式从数组 Map List集合取值

    Jstl是sun的标准taglib库,Jstl是标签库和el语言的结合. el 表达式的隐含对象pageScope,requestScope,sessionScope,applicationScope ...

  5. java根据value获取Map对象的key

    Map<String, String> map= new HashMap<String,String>(); for(Map.Entry<String, String&g ...

  6. el表达式无法获取springmvc的model封装好的数据之解决方法

    近日碰到奇怪的问题,应该挺好解决的,可是就是卡住我两天 下面我来描述一下问题 用的是springmvc,自然需要controller,假设我现在所有的配置都是对的. controller代码 @Req ...

  7. EL表达式无法获取boolean类型变量值

    今天调试个程序, 有个名为isAdmin的boolean类型的变量在jsp页面获取到的值为空, 这根本就是没获取到或者变量不存在的状况啊,但是在Action中明明是赋值成false了. 上网查了一下有 ...

  8. EL表达式中获取list长度

    在jsp页面中不能通过${list.size}取列表长度,而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pref ...

  9. EL表达式无法获取Spring MVC的Model封装好的数据解决方法

    1.在spring-mvc的配置文件中已经配置jsp的视图解析器 2.在Controller中使用Model的addAttribute方法添加属性name,msg 3.在jsp页面中使用${msg}取 ...

随机推荐

  1. 在Asp.Net MVC中实现计算页面执行时间及简单流量统计

    引用www.rsion.com.dll进您的asp.net MVC项目本人不才,源代码中有详细说明,查看demo修改HomeController public class HomeController ...

  2. ORA-19502: write error on file "xxxxx", block number xxxx

    错误现象: 在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL> ALTER TABLESPACE IGNITE_EGVSQL01      AD ...

  3. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  4. 0024 Java学习笔记-面向对象-包装类、对象的比较、String常量池问题

    包装类 基本类型-->包装类 byte-->Byte short-->Short int-->Integer long-->Long char-->Characte ...

  5. MongoDB学习笔记~为IMongoRepository接口更新指定字段

    回到目录 对于MongoDB来说,它的更新建议是对指定字段来说的,即不是把对象里的所有字段都进行update,而是按需去更新,这在性能上是最优的,这当然也是非常容易理解的,我们今天要实现的就是这种按需 ...

  6. 搭建 OpenStack 实验环境 - 每天5分钟玩转 OpenStack(16)

    在学习 OpenStack 各服务之前,让我们先搭建起一个实验环境. 毋庸置疑,一个看得到摸得着而且允许我们随便折腾的 OpenStack 能够提高我们的学习效率. 因为是我们自己学习用的实验环境,C ...

  7. x01.Weiqi.9: 点目功能

    添加点目功能,虽不中,不远也.还是先看看截图吧. 确保其可行,再看一张: 其点目结果,还是比较令人满意的.这主要得益于多遍扫描,如编译器的词法分析阶段,下面的代码可以证明: private void ...

  8. 关于android的日志输出&LogCat

    android提供了自己的log输出api-->位于android.util.Log这个类中. 这个类比较常用的打印日志的方法有5个,这5个方法都会把日志打印到LogCat中: Log.v(ta ...

  9. 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  10. 第3章 Linux常用命令(1)_文件处理命令

    1. 文件处理命令 1.1 命令格式:命令 [-option] [arguments],如ls –la /etc (1)个别命令使用不遵循此格式 (2)当有多个选项时,可以写在一起,如以上的-la ( ...