EL和JSPL
EL:表达式语言
语法:${表达式}
例子:
<% out.print(request.getAttribute("name")) %>
被以下方式替换了
<%=request.getAttribute("name")%>
又被以下EL表达式替换了
${name}
EL表达式的功能
1.11个内置对象
2.从某个范围内获取属性值
3.支持运算符
1.11个内置对象中常用分五个
pageScope:表示pageContext的域对象
requestScope:表示request域对象
sessionscope:表示session域对象
application:表示servletContext域对象
pageContext:最重要的对象-工具类,可以获取其他对象 例如${pageContext.request}
从某个范围内取值
从四个域中通过key找到简单数据并显示出来
${name}
四个域的寻找顺序是 pageContext,request,session,application。(从小范围到大范围,小范围优先)若找不到键值,不会显示为null,会显示一个为空的字符串。
也可以从指定范围内取值
${pageSope.name}
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
支持运算符
支持java中的各类运算符
例如:==,&&,||,等
JSPL标签
JSPL:是对EL表达式的扩展(也就是说JSPL一来EL),JSPL是标签语言
JSPL不是内置标签,使用的时候需要导包jspl-1.2.jar
jspl标签库包括五个,分别是
1、core:核心标签库 核心标签,执行一些输出,设置值,可遍历
2、fmt:格式化标签库 格式化标签,可格式化日期数字等
3、sql:数据库标签库 用于在页面执行sql
4、xml:sml标签库 操作xml的标签
5、JSPL函数 字符串处理函数
core标签
c:out 标签 输出信息到页面,相当于${}
例子:
<c:out value="${name}" default="没有值"></c:out>
c:set 设置值
例子:
<c:set var="cset" value="hello c:set" scope="request"></c:set>
c:remove 移除值
例子:
<c:remove var="cset" scope="request"/>
Scope可选四大域对象 page、request、session、application
c:choose 判断 相当于 if elseif else
<c:choose>
<c:when test="${param.age<20}">
小于20
</c:when>
<c:when test="${param.age<50}">
小于50
</c:when>
<c:otherwise>
大于50
</c:otherwise>
</c:choose>
c:foreach 变例
<c:forEach items="${array }" var="str">
${str }
</c:forEach>
<br>
<!-- 遍历集合 -->
<c:forEach items="${list }" var="list">
${list }
</c:forEach>
<br>
<!-- 遍历对象 -->
<c:forEach items="${users }" var="user">
${user.name }:${user.age }
</c:forEach>
<br>
<!-- 遍历Map -->
<c:forEach items="${map }" var="entry">
${emtry.key }:${entry.value.name }
</c:forEach>
<br>
<!-- 遍历0-10之内的数字 -->
<c:forEach var="i" begin="0" end="10" step="2">
${i }
</c:forEach>
<br>
<!-- 遍历对象 -->
<c:forEach items="${users }" var="user" varStatus="status">
${user.name }:${status.index }:${status.count }
</c:forEach>