导包jar:jstl.jar standard.jar
jsp脚本:
<%=request.getAttribute(name)%>
EL表达式替代上面的脚本:${requestScope.name}
使用EL最主要的作用是获得四大域中的数据,格式
${EL表达式}
此表达式主要终于代替,
findAttribute(String name)
取值顺序相同
---同样是依次从pageContext域,request域,session域,application域中
--引入头文件
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- 取值 -->
${name}
<!-- 对象取值 对象.属性名 -->
${user.id}.....${user.username}.....${user.pwd}
<!-- 集合取值Key[0].属性名 -->
${List[0].id}
<!-- 项目名 -->
${pageContext.request.contextPath}
<!-- el执行表达式 -->
${50*900000} ${empty user } ${user==null?"空的":user.username }
<!-- 取map集合 循环增强 -->
<c:forEach items="${map }" var= "entry">
${entry.key }....${entry.value.username }
</c:forEach>
<!--非增强循环-->
<c:forEach begin="1" end="3" step="1" var= "entry">
${entry}
</c:forEach>
var:设置变量名,并从集合中取出一组数据。相当于上面的s begin:指定循环的起始位置,如果没有指定,则默认从第一个值开始遍历 end:指定循环的终止位置,如果没有指定,则默认循环到最后一个 step:用于指定循环的步长,例如step=“2”,则会隔一个循环。下面会有例子说明 varStatus:用于指定循环的状态,有一下四个属性值,这个也比较常用,特别是index属性值,表示索引值。
|current:当前这次迭代的(集合中的)项
index:当前这次迭代从 0 开始的迭代计数
count:当前这次迭代从 1 开始的迭代计数
first:用来表明当前这轮迭代是否为第一次迭代的标志,返回true/false
last:用来表明当前这轮迭代是否为最后一次迭代的标志,返回true/false示例
示例:
<%String[] str={"1","2","3","4","5","6","7"};request.setAttribute("str",str);%> <c:forEach items="${str}" var="s" begin="1" end="5"> <c:out value="${s}"></c:out><br> </c:forEach>
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);%> <c:forEach items="${str}" var="s" begin="1" end="5" step="2"> <c:out value="${s}"></c:out><br> </c:forEach>
<%String[] str={"1","2","3","4","5","6","7"};
request.setAttribute("str",str);%><c:forEach items="${str}" var="s" begin="1" end="5" step="2" varStatus="status"> <c:out value="index属性:${status.index}"></c:out> <c:out value="count属性:${status.count}"></c:out> <c:out value="first属性:${status.first }"></c:out> <c:out value="last属性:${status.last }"></c:out><br></c:forEach>
<!--使用if判断-->
<c:if test="${count==10}">
aaa
</c:if>