*******概述:
JSP2.0要把html和css分离、要把html和javascript分离、要把Java脚本替换成标签。标签的好处是非Java人员都可以使用。
JSP2.0 – 纯标签页面,即:不包含<% … %>、<%! … %>,以及<%= … %>
EL(Expression Language)是一门表达式语言,它对应<%=…%>。我们知道在JSP中,表达式会被输出,所以EL表达式也会被输出
*******EL的格式
格式:${…}
例如:${1 + 2
*******关闭EL
如果希望整个JSP忽略EL表达式,需要在page指令中指定isELIgnored=”true”。
如果希望忽略某个EL表达式,可以在EL表达式之前添加“\”,例如:\${1 + 2}。
*******EL运算符
运算符 | 说明 | 范例 | 结果 |
+ | 加 | ${17+5} | 22 |
- | 减 | ${17-5} | 12 |
* | 乘 | ${17*5} | 85 |
/或div | 除 | ${17/5}或${17 div 5} | 3 |
%或mod | 取余 | ${17%5}或${17 mod 5} | 2 |
==或eq | 等于 | ${5==5}或${5 eq 5} | true |
!=或ne | 不等于 | ${5!=5}或${5 ne 5} | false |
<或lt | 小于 | ${3<5}或${3 lt 5} | true |
>或gt | 大于 | ${3>5}或${3 gt 5} | false |
<=或le | 小于等于 | ${3<=5}或${3 le 5} | true |
>=或ge | 大于等于 | ${3>=5}或${3 ge 5} | false |
&&或and | 并且 | ${true&&false}或${true and false} | false |
!或not | 非 | ${!true}或${not true} | false |
||或or | 或者 | ${true||false}或${true or false} | true |
empty | 是否为空 | ${empty “”},可以判断字符串、数据、集合的长度是否为0,为0返回true。empty还可以与not或!一起使用。${not empty “”} | true |
******注意:EL不显示null,当EL表达式的值为null时,会在页面上显示空白,即什么也不显示
******EL表达式格式
先来了解一下EL表达式的格式!现在还不能演示它,因为需要学习了EL11个内置对象后才方便显示它,下面会说
操作List和数组:${list[0]}、${arr[0]};
操作bean的属性:${person.name}、${person[‘name’]},对应person.getName()方法
操作Map的值:${map.key}、${map[‘key’]},对应map.get(key)
******EL内置对象,前4个是域相关内置对象,一共有11个
pageScope ${pageScope.name}等同与pageContext.getAttribute(“name”)
requestScope ${requestScope.name}等同与request.getAttribute(“name”)
sessionScope ${sessionScope.name}等同与session.getAttribute(“name”)
applicationScope ${applicationScope.name}等同与application.getAttribute(“name”)
如果在域中保存的是JavaBean对象,那么可以使用EL来访问JavaBean属性,
因为EL只做读取操作,所以JavaBean一定要提供get方法,而set方法没有要求,代码如下,下面是一个person类
public class Person { ???private String name; ???private int age; ???private String sex; ???public String getName() { ???????return name; ???} ???public void setName(String name) { ???????this.name = name; ???} ???public int getAge() { ???????return age; ???}public void setAge(int age) { ???????this.age = age; ???} ???public String getSex() { ???????return sex; ???} ???public void setSex(String sex) { ???????this.sex = sex; ???}}
在JSP中写
<body>
<%pageContext.setAttribute("p1", new person("Linda",18,"female")); %> ???${pageScope.p1.name } ???${pageScope.p1.age } ???${pageScope.p1.sex }
//这是注释:全域查找:${person}表示依次在pageScope、requesScopet、sessionScope、appliationScope四个域中查找名字为person的属性
</body>
在页面上可以得到结果为
Linda23female
param
paramValues
header
headerValues
Cookie
initParam
pageContext
JSP之EL表达式
原文地址:https://www.cnblogs.com/QianYue111/p/9743461.html