博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5: EL 表达式小结
阅读量:6942 次
发布时间:2019-06-27

本文共 1406 字,大约阅读时间需要 4 分钟。

1.EL表达式的语法格式很简单:

以前编写jsp代码时,如果要获取表单中的用户名,一般使用  <%=request.getParameter("name")%> ,这样当然也可以获取到值,但是又把html代码和java代码混到一起,看起来比较乱套。现在使用EL表达式的话就比较简洁了:${param.name} 就可以解决了。

注意:${表达式} 表达式部分不需要加引号,如果写成 ${"param.name"} ,那么页面上显示出来的就不是表单中name的值了,而是 "param.name" 这个字符串。表达式与开始符和终结符之间的空格被忽略不计。如果表达式的值为null,那么页面将显示一个空格而不是null。

2.EL的两个运算符   "." 和 "[]"

${param.name} 和 ${param["name"]} 是等价的,但是当要存取的属性名称中包含有一些特殊字符如 "." 或 "-" 等非字母或数字的符号 或者 在使用动态取值时,就一定要使用 "[]" 运算符。

3.EL表达式的取值范围

pageScope、requestScope、sessionScope、applicationScope

如果没有给定参数名的取值范围,系统默认从page范围中查找,找不到则找request,一次类推,都找不到时传回null。

例如,存入一个session范围的值:<% session.setAttribute("u", "hello,EL") %>

那么,传统方式取值:<% session.getAttribute("u") %>。使用EL表达式取值:${sessionScope.u} 或者 ${u}

4.EL表达式可以自动转换类型

传统代码:

1 <% 2 String age = request.getParameter("age"); 3 int agei = Integer.parseInt(age); 4 out.println(age+10); 5 %>

使用EL表达式:

1 ${user.age+10}

5.EL表达式的内置对象

(1)与范围有关的内置对象

pageScope、requestScope、sessionScope、applicationScope

(2)与输入有关的内置对象

param 和 paramValues 用来获取表单中提交的信息。前者返回 String 类型数据,后者返回 String[] 类型的数据。如 ${paramValues.name}。

(3)其他隐含对象

Cookie

header  如:${header["UserAgent"]} 获取浏览器的版本信息

headerValues 

initParam  如:${initParam.DBDriver} 获取web.xml中配置的相关参数

pageContext 如:${pageContext.request.remoteAddr} 获取用户的IP地址

6.特别注意:

通过获得的参数进行比较判断时,要这样比较:${param.name1 == param.name2}

empty 运算符用于判断值是否为 null 或 空 。 ${empty null} ${empty ""}

转载于:https://www.cnblogs.com/qianbaidu/p/6006427.html

你可能感兴趣的文章
[Step By Step]SAP HANA PAL 异态检测算法Anomaly Detection实现例程ANOMALYDETECTION
查看>>
linux上配置boost手记
查看>>
IIS状态监测(如果状态错误则重启IIS)
查看>>
PostgreSQL中,database,schema,table之间关系
查看>>
12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球(13个呢?)...
查看>>
HDU 2364 (记忆化BFS搜索)
查看>>
两个实用的方法从Base64字符串生成RSAPublicKey及RSAPrivatekey
查看>>
常用验证数字的正则表达式
查看>>
kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)[收藏]
查看>>
java读取excel文件数据
查看>>
Java的RMI远程方法调用实现和应用
查看>>
Linux 上使用 Gmail SMTP 服务器发送邮件通知
查看>>
Dell vsotro 14 3000系列从win10重装win7
查看>>
说说$POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
查看>>
(一) Qt Model/View 的简单说明
查看>>
制作自己的MVC框架(三)——应用
查看>>
青云指南
查看>>
thinkphp 3.2 多表查询 group
查看>>
C#.NET 无法直接启动带有类库输出类型的项目怎么办
查看>>
LeetCode——Best Time to Buy and Sell Stock
查看>>