EL表达式:
Expression Language表达式语言,替代JSP页面中数据访问时的复杂编码,可以非常便捷地取出域对象(PageContext、request、session、application)中保存的数据,前提时一定要先setAttribute,EL就相当于简化getAttribute。
语法:${变量名} ----专门用来取数据的。
变量名就是setAtttribute对应的key值。
<%
request.setAttribute("name","andis");
String name = (String) request.getAttribute("name");
%>
<%=name%>
<br>
${name}
如果同时取page、request、session、spplication的name值?
1.EL对于4种域对象的默认查找顺序: 优先级:pageContext>request>session>application
按照上述的顺序进行查找,找到立即返回,在application种无法找到,则返回null
2.指定作用域进行查找
pageContext:${pageScope.name}
request:${requestScope.name}
session:${sessionScope.name}
application:${application.name}
EL执行表达式
&& || ! < > <= >= ==
&& and
|| or
! not
== eq
!= ne
< lt
> gt
<= le
>= ge
empty (判断是否为空)
如果变量为null,或者长度为0的String,或size()为0
JSTL
JSP Standard Tag Library JSP标准标签库,JSP为开发者提供的一系列的标签,使用这些标签可以完成一些逻辑处理,比如循环遍历集合,让代码更加简洁,不再出现JSP脚本穿插的情况。
实际开发中EL和JSTL结合起来使用,JSTL侧重逻辑处理,EL负责展示数据。
JSTL使用
1、需要导入jar包(jstl.jar和standard.jar)
2、在JSP页面开始的地方导入JSTL标签库
3、减少<%%>的使用,在需要地方使用
<c:foreEach items="${list}" var ="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
JSTL优点:
- 提供了统一标签
- 可以用于编写各种动态功能
常用标签:
set:向域对象种添加数据..
<%
request.setAttribute("name","Tom");
%>
等价于:
<c:set var = "name" value="tom" scope = "session"></c:set>
${name}
默认存储在Page中
out:输出域对象中的数据