EL表达式:
1.概念:Expression Language 表达式语言
2.作用:替换和简化jsp页面中Java代码的编写
3.语法:${表达式}
4.注意:
jsp默认支持el表达,如果要忽略el表达式
1.设置jsp中page指令中 isELIgnored="true",忽略当前jsp页面中所有的el表达式。
2.\${表达式}:忽略当前这个el表达式。
5.使用:
1.运算:
运算符:
1.算数运算符:+-*/(div)%(mod)
2.比较运算符:> < >= <= == !=
3.逻辑运算符:&& || !
4.空运算符:empty 用于判断字符串、集合、数组对象是否为null,并且长度是否为0
${empty list}
${not empty list}
2.获取值:
1.el表达式只能从域对象中获取值
2.语法:
a.${域名称.键名}:从指定域中获取指定键的值
域名称:
pageScope --> pageContext
requestScope -->request
sessionScope-->session
applicationScope-->application
如:在request域中存储了name=张三
${requestScope.name}
b.${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。${name}
c.获取对象:List集合、Map集合的值
1.对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法。
2.List集合:${域名称.键名[索引]}
3.Map集合:
1.${域名称.键名.key名称}
2.${域名称.键名["key名称"]}
3.隐式对象:
el表达式中有11个隐式对象
pageContext:
获取jsp其他八个内置对象
${pageContext.request.contextPath}:动态获取虚拟目录
JSTL标签:
概念:javaServer pages Tag Library JSP标准标签库
是由Apache组织提供的开源的免费的jsp标签 <标签>
作用:用于简化和替换jsp页面上的Java代码。
使用步骤:
1.导入jstl相关jar包
2.在jsp文件中引入标签库:taglib指令:<%@ taglib%>
3.使用标签
常用的JSTL标签:
1.if :相当于Java的if语句
<c:if text="${not empty list}"></c>
1.属性:test必须属性,接收Boolean表达式,如果表达式为true,则显示if标签体内容,如果为false,不显示if标签体内容。
一般情况下,test属性值会结合el表达式一起使用。
2.注意:c:if标签没有else情况。
2.choose :相当于Java的switch语句
when标签做数字判断,相当于case
otherwise标签做为其他情况的声明,相当于default
<c:choose>
<c:when text="${request.number}">星期一</c:when>
<c:defaul}">不是星期一</c:default>
</c:choose>
3.foreach :相当于Java的for循环语句
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象,index容器中元素的索引从0开始。count循环次数,从1开始。
属性:
items容器对象
var容器中的临时变量。
<c:foreach items="${list}" var ="str" varstatus="s" >
${s.index}${s.count} ${str}<br>
</c:foreach>