目的:尽可能减少jsp页面java代码
步骤:先导包(WebContent下的WEB—INF下的lib包下)
第一步,导入核心jstl核心类库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
c:out:把变量的值输出到浏览器,可以把特殊字符进行转化
对比
<%
request.setAttribute("book", "<<java>>");
%>
book:${requestScope.book }
<br>
book:<c:out value="${requestScope.book }"></c:out>
可以使用默认值
<c:out value="${aaaa }" default="获取为空"></c:out>
c:set 为域对象设置值
<c:set var="hello" value="hpe" scope="request"></c:set>
c:remove:删除指定域对象里面的值
<c:set var="age" value="19" scope="request"></c:set>
<c:remove var="age" scope="request"/>
c:url:输出路径
<c:url value="/"></c:url>
c:if:不能实现else
<c:set var="action" value="19" scope="request"></c:set>
<c:if test="${requestScope.action>18 }">成年了</c:if>
c:choose 判断相当于if elseif else
<c:set var="age1" value="70" scope="request"></c:set>
<c:choose>
<c:when test="${requestScope.age1>=18 }">你成年了</c:when>
<c:when test="${requestScope.age1>=40 }">你老了</c:when>
<c:otherwise>你还是个小学生</c:otherwise>
</c:choose>
c:foreach :迭代语句(非常重要)
从10开始,50结束,间隔10
<c:forEach var="i" begin="10" end="50" step="10" varStatus="status">
${i },第${status.count }个
</c:forEach>
遍历一个数组
<%
String[] aa={"1A","2A","3A"};
pageContext.setAttribute("aa", aa);
%>
<c:forEach var="a" items="${aa }">
${ a}
</c:forEach>
list集合
<%
List<User> lsUser=new ArrayList<User>();
lsUser.add(new User("阿珂",18));
lsUser.add(new User("兰陵王",1800));
lsUser.add(new User("李白",180));
request.setAttribute("lsUser",lsUser);
%>
<c:forEach var="user" items="${requestScope.lsUser }">
${user.name }:${user.age }
</c:forEach>
<hr>
Map集合
<%
Map<String, User> map=new HashMap<String,User>();
map.put("aa", new User("宫本",345));
map.put("bb", new User("亚瑟",34));
request.setAttribute("map", map);
%>
<c:forEach var="m" items="${requestScope.map }">
key:${m.key }--${m.value.name }:${m.value.age }
</c:forEach>