EL表达式学习笔记
2015-06-06 18:19
253 查看
如果你将一个字符串放进request里面,如果我们用jsp的知识来在前台取的数据,如下所示:
但如果用EL表达式的话,就可以写成下面的样子:
说明一下:
el表达式的隐含对象为pageScope, requestScope, sessionScope, applicationScope
如果未指定scope,它的搜索顺序为:pageScope~applicationScope,当然我们可以显式的指定EL表达式的scope:
假设我们把一个user对象扔进request,user对象包含username, age等信息,我们怎么取出该对象的username和age信息呢:
注意:user对象应该提供getUserName()和getAge()方法,因为EL表达式其实是调用类似的方法来取得相应的内容。
现在假设后台是把一个map对象扔进了request里面,代码如下:
那么如何在前台取得key1和key2对应的值呢?可以用下面的方法:
但是如果后台现在你不知道传回多少数据,需要遍历的话,EL表达式是完成不了的,这就需要配合JSTL表达式来完成,后面将会讲解
假设现在后台中是一个字符串数组:
则前台是这样来获得第二个元素:
但如果是对象数组,例如是10个user对象的数组,我们现在来取得第二个user对象的姓名:
如果是List容器,取法跟数组一样:
EL表达式对运算符的支持:
假设要计算1+2 :
除法 : 10/5 :
取余 : 10 % 3 :
等于 :
不等于 :
小于 :
大于 :
小于等于 : <= | le
大于等于 : >= | ge
and : && | and
或 : || | or
非 : ! | not
对于取出来的数据是不是为空,可以用下面的函数:
对于不存在,或者你在request里面设置的null, 或者数组,字符串,list,map等容器的长度为0的情况下都会输出true,其他情况输出false
<%= request.getAttribute("hello") %>
但如果用EL表达式的话,就可以写成下面的样子:
${hello }
说明一下:
el表达式的隐含对象为pageScope, requestScope, sessionScope, applicationScope
如果未指定scope,它的搜索顺序为:pageScope~applicationScope,当然我们可以显式的指定EL表达式的scope:
${requestScope.hello }
假设我们把一个user对象扔进request,user对象包含username, age等信息,我们怎么取出该对象的username和age信息呢:
${user.username } ${user.age }
注意:user对象应该提供getUserName()和getAge()方法,因为EL表达式其实是调用类似的方法来取得相应的内容。
现在假设后台是把一个map对象扔进了request里面,代码如下:
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); request.setAttribute("map", map);
那么如何在前台取得key1和key2对应的值呢?可以用下面的方法:
${map.key1 } ${map.key2 }
但是如果后台现在你不知道传回多少数据,需要遍历的话,EL表达式是完成不了的,这就需要配合JSTL表达式来完成,后面将会讲解
假设现在后台中是一个字符串数组:
String[] arr = {"a", "b", "c"}; request.setAttribute("arr", arr);
则前台是这样来获得第二个元素:
${arr[1] }
但如果是对象数组,例如是10个user对象的数组,我们现在来取得第二个user对象的姓名:
${arr[1].username }
如果是List容器,取法跟数组一样:
${arr[1].username }
EL表达式对运算符的支持:
假设要计算1+2 :
${1+2 }便可
除法 : 10/5 :
${10/5 }也可以写成
${10 div 5 }
取余 : 10 % 3 :
${10%3 }或者
${10 mod 3 }
等于 :
${10==10 }或者
${10 eq 10 }
不等于 :
${10 != 10 }或者
${10 ne 10 }
小于 :
${8 < 10 }或者
${8 lt 10 }
大于 :
${8 > 10 }或者
${8 gt 10 }
小于等于 : <= | le
大于等于 : >= | ge
and : && | and
或 : || | or
非 : ! | not
对于取出来的数据是不是为空,可以用下面的函数:
${empty value }
对于不存在,或者你在request里面设置的null, 或者数组,字符串,list,map等容器的长度为0的情况下都会输出true,其他情况输出false
相关文章推荐
- 简单邮件传输协议
- 关于IP网段间互访的问题—路由是根本(转)
- 使用NGUI实现带有放大功能的scrollview背包
- 人生的意义是什么?
- MATLAB导入数据importdata功能
- 全套Oracle数据库安装实施视频课程套餐[涉及RAC,Linux,Win,ASM,Udev,FS]
- 抽象类使用规范的一些总结
- Hbase总结(五)-hbase常识及habse适合什么场景
- 我为什么要写博客?
- cygwin的坑坑洼洼
- Java层与Jni层的数组传递(转)
- uml精粹——10.状态机图
- golang grpc thrift with aerospike
- 汇编指令详细解释
- 银行家算法(Java语言实现)
- 图解如何 将Excel里的数据导入到sql server数据库中
- C实现 LeetCode->Longest Palindromic Substring
- Oracle RAC 11gR2+WebLogic集群6节点项目安装实施维护视频课程套餐
- 学习笔记:MFC实现http协议传输图片和文本
- 2015华为软件精英挑战赛