`
liuhanjun
  • 浏览: 47783 次
  • 性别: Icon_minigender_1
  • 来自: 海口
社区版块
存档分类
最新评论

EL表达式Map取值的隐含问题

    博客分类:
  • J2EE
JSP 
阅读更多

EL表达式取Map中的值,非常简单${numberMap[key]}就可以,但是要注意,如果你的numberMap是这样的:

HashMap<Integer, String> numberMap= new HashMap<Integer, String>();
numberMap.put(0, "零");
numberMap.put(1, "一");

 

在jsp页面中${numberMap[1]}将取不到值,因为el表达式中数字1是Long类型(好BT啊,都没加L啊),无法匹配到numberMap中的Integer 1 。明白了原理,事儿就好办了。修改numberMap:

HashMap<Long, String> map = new HashMap<Long, String>();
map.put(0L, "零");
map.put(1L, "一");

 

然后就随心所欲哈${numberMap[1]},${numberMap[1 - 1]}均可取到值。

分享到:
评论
14 楼 valiant303 2011-06-22  
一般很少用到以经本类型为key的情况 通常都是String类型
13 楼 悲剧了 2011-05-12  
asd491310 写道
谢放LZ,这东西没用过,以后用的时候得注意,这样说,那JSP中数字默认是long型,而不是int型 了

这个你准备怎么验证呢?
12 楼 wjywilliam 2011-04-27  
俺一般key用string,不用int
11 楼 sswh 2011-04-27  
liuhanjun 写道

在jsp页面中${numberMap[1]}将取不到值,因为el表达式中数字1是Long类型(好BT啊,都没加L啊),无法匹配到numberMap中的Integer 1 。


你用的是struts2吗?

struts2的OGNL测试:
	public static void main(String[] args) throws OgnlException {
		Map map = new HashMap();
		map.put(1, "aaa");
		map.put(2L, "bbb");
		Object o = Ognl.getValue("[1]+','+[2]+','+[2L]", map);
		System.out.println(o);
	}


运行结果是:
引用
aaa,null,bbb


结果和你的结论恰好相反。
10 楼 songjipo 2011-04-27  
还真没注意过这个问题  多谢LZ  学习了
9 楼 asd491310 2011-02-05  
谢放LZ,这东西没用过,以后用的时候得注意,这样说,那JSP中数字默认是long型,而不是int型 了
8 楼 akunamotata 2011-02-02  
“因为el表达式中数字1是Long类型”

那其他的都是int类型么?“0”也是...
7 楼 生活小丑 2011-02-01  
这个真没注意过~谢谢分享~
6 楼 dengzhangtao 2011-01-30  
也是哦,  以前都没注意呢, 不过也很少人用这样的数字, 可读性太差了, 一般字符串容易
5 楼 beer2008cn 2011-01-30  
学习了,谢谢
4 楼 hommy8 2011-01-30  
学习了,谢谢!
3 楼 yzhw 2011-01-30  
以后用到要注意一下了
2 楼 Ben.Sin 2011-01-29  
一直没留意过,有点意思
1 楼 iamlipeng 2011-01-29  
学习了,以前还没注意过。

相关推荐

    EL表达式的使用详解

    EL 表达式的使用详解 EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细...

    EL表达式的语法介绍

    EL 表达式可以被解析成数值表达式和方法表达式,其中取值表达式用于引用一个值,而方法表达式则是关联一个方法。 1.1 EL 表达式语法 EL 表达式可以分为三种类型:eval-expression、literal-expression 和 ...

    el表达式用法部分解说

    ### EL表达式详解 EL(Expression Language)表达式在Java Web开发中扮演着重要的角色,尤其是在JSP(Java Server Pages)技术中。本文将详细解释EL表达式的使用方法及其应用场景,帮助开发者更好地理解和掌握这一...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    综上所述,在开发中遇到EL表达式问题时,可以通过调整web.xml文件中的JSP版本配置或在JSP页面中调整page directive指令来解决。同时,了解EL表达式在不同Java EE版本中的行为差异以及它们提供的新特性,有助于在实际...

    EL表达式包括字符串处理,时间日期的格式化,数字处理

    ### EL表达式详解 #### 一、EL表达式的概述与基本使用 EL(Expression Language),即表达式语言,是JavaServer Pages (JSP) 2.0标准的一部分,用于简化JSP页面中对数据访问的操作。它允许开发者通过简单的语法在...

    EL表达式在前后台的取值赋值问题

    ### EL表达式在前后台的取值赋值问题详解 #### 一、EL表达式概述 EL(Expression Language)表达式是一种简洁的方式,用于获取JavaBean属性或执行简单运算。在JSP页面中,它提供了从请求作用域、会话作用域、应用...

    java中JSP和el表达式的隐含对象

    ### Java中JSP和EL表达式的隐含对象详解 在Java Web开发中,JSP(Java Server Pages)作为一种常用的技术被广泛应用于构建动态网页。它允许开发者将HTML、JavaScript等静态网页元素与动态生成的内容混合在一起。在...

    EL表达式使用文档,方便快速使用EL表达式.pdf

    EL 表达式使用文档 EL 表达式(Express Language)是一种强大的表达式语言,用于简化 JSP 页面中的编程。EL 表达式可以嵌入在 JSP 页面内部,减少 JSP 脚本的编写,目的是要替代 JSP 页面中脚本的编写。 EL 表达式...

    EL表达式练习 EL表达式练习

    EL(Expression Language,表达式语言)是JavaServer Pages(JSP)2.0及更高版本中的一个重要组成部分,它提供了一种简洁、强大的方式来访问JavaBean属性和表达式求值。EL表达式主要用于简化JSP页面中的代码,提高...

    JSTL以及EL表达式所需jar包

    为了增强JSP页面的功能性和简化代码,我们通常会使用两种技术:EL(Expression Language)表达式和JSTL(JavaServer Pages Standard Tag Library)标签库。这两个工具都是Java EE生态系统的一部分,极大地提高了开发...

    EL表达式所用的jar包.rar

    EL(Expression Language)表达式是JavaServer Pages(JSP)2.0及更高版本中引入的一种强大而简洁的脚本语言,用于访问JavaBeans组件的属性和方法。它简化了在JSP页面中获取和设置数据的过程,提高了代码的可读性...

    JAVAEE实验报告EL表达式和jstl标签库的使用.pdf

    JAVAEE 实验报告 EL 表达式和 JSTL 标签库的使用 EL 表达式(Expression Language)是一种在 JSP 页面中使用的脚本语言,用于简化 JSP 页面的开发。EL 表达式可以访问 JSP 页面中的变量、对象和集合,进行逻辑操作...

    EL表达式全解语法中文技术文档

    通过阅读《EL表达式全解语法中文技术文档》(如JSP2.0EL.pdf),你可以深入了解EL的每个方面,并熟练运用到实际开发中,解决与EL相关的各种问题,提升JSP应用的开发效率和质量。这份文档详尽地涵盖了EL的全部语法,...

    el表达式EL表达式言语和JSTL

    **EL表达式** EL(Expression Language)表达式是Java服务器页面(JSP)2.0及更高版本中引入的一种轻量级、强大的脚本语言,主要用于简化Java Web应用程序中的数据访问。它允许开发者在JSP页面中直接访问JavaBean...

    el表达式教程,教你学会使用el表达式

    EL 表达式教程 EL(Expression Language)是一种简洁的语言,用于在 JSP 中访问和操作数据。EL 表达式提供了简洁的语法来访问和操作数据,使得开发者可以更方便地在 JSP 中进行数据处理。 基本语法 EL 表达式的...

    EL表达式(很全很强大)

    ### EL表达式详解 #### 一、EL表达式的语法结构及使用 EL(Expression Language)是一种简化了的数据访问语言,用于获取JavaBean属性值或调用其方法等操作。其基本语法结构为`${expression}`,这使得开发者能够在...

    EL表达式的使用方法

    EL表达式的取值范围 在书写EL表达式时,可以通过指定作用域来获取不同范围内的对象值。 - **pageScope**:页面范围,只存在于当前请求响应周期内。 - **requestScope**:请求范围,当前HTTP请求期间有效。 - **...

    SpringMVC中Model和ModelAndView的EL表达式取值方法

    接下来,我们将深入探讨如何在Spring MVC中使用Model、ModelAndView以及EL表达式进行数据取值。 1. **Model对象** Model对象通常是一个`java.util.Map`实例,用于存放控制器处理业务逻辑后需要传递给视图的数据。...

    JSTL自定义EL表达式

    本资源主要讲解了如何在JSTL中定义和使用自定义的EL表达式,这对于提高JSP页面的可读性和可维护性至关重要。 首先,理解JSTL的基础概念。JSTL由几个核心标签库组成,如fmt、fn、sql、xml等,它们提供了处理日期和...

Global site tag (gtag.js) - Google Analytics