EL表达式怎么获取Map的动态key?
缘由
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?的更多相关文章
- 获取map集合中key、value
获取Map集合类中key.value的两种方法 方法一:利用Set集合中的keySet()方法 Map<String,String> map = new HashMap<String ...
- 在jsp中怎么使用Cookie?el表达式中获取cookie的问题
初学jsp,不清楚cookie的使用方法,希望高手指点一下! 一般来说有两种办法,在JSP中使用Java的嵌入脚本. 例如: 写入Cookie <html> <head>. ...
- map.keySet()获取map全部的key值
map.keySet()获取map全部的key值 public static String getUrlWithQueryString(String url, Map<String, Str ...
- EL表达式从数组 Map List集合取值
Jstl是sun的标准taglib库,Jstl是标签库和el语言的结合. el 表达式的隐含对象pageScope,requestScope,sessionScope,applicationScope ...
- java根据value获取Map对象的key
Map<String, String> map= new HashMap<String,String>(); for(Map.Entry<String, String&g ...
- el表达式无法获取springmvc的model封装好的数据之解决方法
近日碰到奇怪的问题,应该挺好解决的,可是就是卡住我两天 下面我来描述一下问题 用的是springmvc,自然需要controller,假设我现在所有的配置都是对的. controller代码 @Req ...
- EL表达式无法获取boolean类型变量值
今天调试个程序, 有个名为isAdmin的boolean类型的变量在jsp页面获取到的值为空, 这根本就是没获取到或者变量不存在的状况啊,但是在Action中明明是赋值成false了. 上网查了一下有 ...
- EL表达式中获取list长度
在jsp页面中不能通过${list.size}取列表长度,而是 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" pref ...
- EL表达式无法获取Spring MVC的Model封装好的数据解决方法
1.在spring-mvc的配置文件中已经配置jsp的视图解析器 2.在Controller中使用Model的addAttribute方法添加属性name,msg 3.在jsp页面中使用${msg}取 ...
随机推荐
- 一步步搭建react-native环境(苹果OS X)
因重新升级了系统,一步步搭建react-native环境. 1.安装Homebrew 打开终端命令->ruby -e "$(curl -fsSL https://raw.githubu ...
- 设计模式 之 命令(Command)模式
命令模式: 命令模式是对命令的封装.它将发出的命令的责任和执行的命令分隔开,委派给不同的对象.被委派的对象虽然具有执行的命令,但只有在接收到命令后,才会执行命令. 下面是命令模式的结构图: 命令模式涉 ...
- 原生JS 表单提交验证器
转载:http://www.cnblogs.com/sicd/p/4613628.html 一.前言 最近在开发一个新项目,需要做登陆等一系列的表单提交页面.在经过“缜密”的讨论后,我们决定 不用外部 ...
- Linux命令学习总结:chage
命令简介: 该命令用于密码时效管理.它可以修改账号和密码的有效期.对于chage命令的描述如下所示: The chage command changes the number of days betw ...
- Java程序性能优化——让你的java程序更快、更稳定
1.Java性能调优概述 1.1.Web服务器,响应时间.吞吐量是两个重要的性能参数. 1.2.程序性能的几个表现: 执行速度:程序的反映是否迅速,响应时间是否足够短 内存分配:分配是否合理,是否过多 ...
- QT210 android2.3 和android4.0 烧写编译日记
QT210下载烧录编译android2.3过程 工作环境:ubuntu12.04.5 | QT210开发板光盘 | QT210开发板 android2.3编译环境:gcc version 4.4.7 ...
- Oracle用户密码过期和用户被锁解决方法
[原因/触发因素] 确定是由于oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天"所导致. [影响和风险] 影响 密码过 ...
- 【转帖】嵌入式4412开发板QT5.7编译安装到arm
QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系统 Orandragon记录 本文转自迅为4412开发板群:http://to ...
- Java Generics and Collections-2.1
2.1 子类化以及替换原理 为什么List<Integer> 不是List<Number> 的子类? 首先看下面的代码,这段代码是编译不过的 package java_gene ...
- 浏览器对于常见HTTP状态码的反应
在我们向服务器发送一个HTTP请求时,会经历tcp连接(三次握手),发送HTTP请求,服务器返回HTTP响应,浏览器对响应中的状态码进行分析判断,来确定请求是否成功,是否成功得到我们需要的信息. 那么 ...