把每天当成最后一天来释放自己

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  2 随笔 :: 4 文章 :: 1 评论 :: 0 Trackbacks


下面主要是我在应用EL表达式时的一些体会,特此写出,供同志们温习一下我们的EL表达式。

目的

和标签一样,EL表达式出现的目的也是为了简化JSP页面,取代JSP中的JAVA代码使JSP成为纯标记文档,以增加JSP的易读性,维护性。EL表达式能简化JSP文件中数据访问的代码,可用来替代传统的基于“<%= %>”形式的JAVA表达式,以及部分基于“<% %>”形式的JAVA程序片断。

基础

EL表达式中能用哪些操作符?算术,关系,逻辑,empty和条件操作符。在EL表达式中有多少隐含对象?11个隐含对象。网上均有资料,在此不再列举具体的操作符和隐含对象。

命名变量

EL表达式中的变量称为命名变量,它不是JSP文件中的局部变量或实例变量。而是存放在特定范围内的属性,也就是说EL表达式只能取得利用setAttribute(String name)方法存储在某一范围内的值。找到之后直接返回,找不到返回NULL

 .”和“[]

它们虽然都能访问对象的属性,但还是有些区别的。假设在request范围内有一个变量user,而这个变量有一个属性name。下面两种写法效果是一样的。

${requestScope.user.name}  ${requestScope.user[“name”]}

1.动态取值

<%String date = “name”;%>

那么前面的

${requestScope.user[“name”]}

就可以变成

${requestScope.user[date]}

${requestScope.user.date}

就不行,它只会去找user对象内的date属性,如果有会取出date属性值并输出,而不是name属性值,如果没有就会返回NULL,但并不输出任何字符。

2.通过索引取得数组中的值。

自动转换类型

  JAVA5种操作符,它们分别是算术,比较,逻辑,赋值,位操作符,几乎所有的操作符只能用来操作“基本类型”。唯一例外的是“=”,“!=”和“==”,它们可操作所有的对象,除此之外,String类支持“+”和“+=”。上述是对JAVA操作符的总体描述,但上句在EL表达式中并不适用或者说部分缺失。在上面我们介绍过EL表达式有5种操作符,它们分别是算术,关系,逻辑,empty和条件操作符。与JAVA语法不同的是EL表达式中的String类型并不支持“+”和“+=”。如${“1”+”2”}得到的结果则是3,因为这里出现的“+”就是算术操作符,“1和“2会先转换成数值型再相加。由此可见EL表达式的自动转换类型与操作符有关,EL表达式会根据操作符自动转换类型,有点像脚本语言中的弱类型。在这里还有一点要注意${‘a’+2}这样的写法是错误的,因为这里的’a’会被看作String类型。

posted on 2010-09-30 15:40 风的方向 阅读(323) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: