EL(Expression Language)表达式语言
EL的作用是简化JSP的开发,让我们更方便的进行数据的读取(从application、session、request、pageContext)
语法:
${表达式}
如:读取session中的name属性
Java脚本输出:
%= session.getAttribute(name)%
EL:
${name}
读取对象属性的方法:
Java脚本:
%= user.getName()%
EL:
${user.name} 或
${user[name]}
问题:如果在JSP的application、session、request、pageContext对象中都保存了num参数
那么EL表达式${num}会读取哪个num呢?
EL表达式的查找顺序是从最小范围开始找:
pageContext - request - session - application - null
域对象:可以指定读取数据的范围
域对象 对应的JSP对象
pageScope pageContext
requestScope request
sessionScope session
applicationScope application
${域对象.表达式}
如:
读取页面中的num参数:
${pageScope.num}
JSTL(Java Standard Tag Library)Java标准标签库
作用是将JSP中的Java脚本和HTML代码分开,将Java封装到标签中,在页面调用。
使用方法:
1、导入jar包
2、在JSP页面中加入taglib指令
%@ taglib uri=http://java.sun.com/jsp/jstl/core prefix=c%
3、使用标签
c:标签名 属性=”值
核心标签的使用:
输出标签
c:out value=“输出内容”/c:out
赋值标签
c:set var=变量名 value=“值”/c:set
示例:
c:set var=num value=999/c:set
c:out value=num=${num}/c:out
删除变量标签
c:remove var=变量名
异常处理标签
c:catch var=ex
可能有异常出现的内容
/c:catch
示例:
c:catch var=ex
%int n = 6 / 0; %
/c:catch
br
c:if test=${ex != null}
h3异常:${ex}/h3
/c:if
if标签
c:if test=EL表达式
HTML代码
/c:if
示例:
c:if test=${num 500}
h3${num }大于500/h3
/c:if
choose标签
多重判断
c:choose
c:when test=${条件}
HTML代码
/c:when
c:when test=${条件}
HTML代码
/c:when
...
c:otherwise
HTML代码
/c:otherwise
/c:choose
示例:
c:choose
c:when test=${score=90 }
${score }属于A级
/c:when
c:when test=${score=80 }
${score }属于B级
/c:when
c:when test=${score=70 }
${score }属于C级
/c:when
c:when test=${score=60 }
${score }属于D级
/c:when
c:otherwise
${score }属于E级
/c:otherwise
/c:choose
forEach标签
实现循环的标签
用法1:
c:forEach var=循环变量 begin=初始值 end=结束值 step=增长量
HTML代码
/c:forEach
示例:
c:forEach var=i begin=1 end=10 step=1
p style=font-size:${i + 10}px这是段落${i}/p
/c:forEach
用法2:
c:forEach var=循环变量items=${集合或数组名}
HTML代码
/c:forEach
示例:
c:forEach var=user items=${users}
p${user.name } - ${user.age }/p
/c:forEach
总结:本章我们学习了JSP开发的两个强大工具,EL表达式让我们能用简洁的语法读取JSP对象中的值;而JSTL标签库让HTML代码和Java代码实现了分离,从而提高了JSP代码的可维护性,也让JSP开发变得更加简单。