EL表达式怎么获取Map的动态key?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EL表达式怎么获取Map的动态key?相关的知识,希望对你有一定的参考价值。
参考技术A 在EL中,方括号运算符用来检索数组和集合的元素。对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。\\x0d\\x0a\\x0d\\x0a在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 $map[\'key\'] 返回与 map标识符所引用的 Map 中的 "key" 键相关联的值。 \\x0d\\x0a当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式$entry.key取得键名。用表达$entry.value得到每个entry的值。这是因为java.util.Map.Entry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定。 \\x0d\\x0a map2 = new HashMap(); \\x0d\\x0amap2.put("a","hello world"); \\x0d\\x0amap2.put("b","this is map"); \\x0d\\x0arequest.setAttribute("map2",map2); \\x0d\\x0a%> \\x0d\\x0a\\x0d\\x0a键值对遍历
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a list = new ArrayList
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0a
\\x0d\\x0amap中值为列表,直接遍历列表中的每一项
\\x0d\\x0a
\\x0d\\x0a
EL11个内置对象
EL是JSP内置的表达式语言
JSP2.0开始,让再使用Java脚本,而是使用EL表达式和动态标签来代替Java脚本
EL替代的是<%=... %>,也就是说EL只能做输出
EL可以输出的东西都在11个内置对象中,11个内置对象,其中10个是Map,只有pageContext不是Map,它就是PageContext类型,EL所有内置对象如下:
pageScope:获取pageContext域属性,相当于pageContext.getAttribute("xxx")
requestScope:获取request域属性,相当于request.getAttribute("xxx")
sessionScope:获取session域属性,相当于session.getAttribute("xxx")
applicationScope:获取application域属性,相当于application.getAttribute("xxx")
param:对应参数,它是一个Map,其中key是参数,value是参数值,适用于单值的参数,相当于request.getParameter("xxx")
paramValues:对应参数,她是一个Map,其中key是参数,value是多个参数值,适用于多值的参数,相当于request.getParameterValues("xxx")
header:对应请求头,它是一个Map,其中key表示头名称,value是单个头值,适用于单值的请求头,相当于request.getHeader("xxx")
headerValues:对应请求头,它是一个Map,其中key表示头名称,value是多个头值,适用于多值的请求头,相当于request.getHeaders("xxx")
initParam:获取web.xml中<context-param>内的参数,${ initParam.xxx},xxx就是<param-name>标签内的值,进而得到<param-value>中的值
cookie:用于获取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie对象,例如${cookie.JSESSIONID.value }就是获取sessionId
pageContext:可以获取JSP九大内置对象,相当于使用该对象调用getxxx()方法,例如pageContext.getRequest()可以写为${pageContext.request)
EL表达式在获取Map的值或Bean的属性值是,可以使用“点”的方法,也可以使用“下标”的方法。
${initParam.a}与${initParam[‘a‘]},它们是完成的东西相同的。但是,如果Map的键或Bean的属性名中包含下划线或横岗时,那么就必须使用“下标”方法,例如:${initParam[‘a_a‘]}
以上是关于EL表达式怎么获取Map的动态key?的主要内容,如果未能解决你的问题,请参考以下文章
EL表达式怎么获取Map集合中Key为int类型的Value值?
JSP ELEL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值