工作中需要用的
在JSP页面中声明JSTL标签: 核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%> <%@taglib prefix="i18n" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%> <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/function"%>
流程控制:if,choose,when,otherwise
<c:if test="(这里放一个EL表达式)">xx</c:if> <c:if test="${item.typeString eq kind}">javaweb.top</c:if>
<c:if test="${!empty param.color}"> <c:choose> <c:when test="${param.color == 'red'}"> <table bgcolor="red"><tr><td> </td></tr></table> </c:when> <c:when test="${param.color == 'yellow'}"> <table bgcolor="yellow"><tr><td> </td></tr></table> </c:when> <c:when test="${param.color == 'blue'}"> <table bgcolor="blue"><tr><td> </td></tr></table> </c:when> <c:otherwise> <h2>No choice</h2> </c:otherwise> </c:choose> </c:if>
迭代:forEach
遍历集合 <c:forEach var="i" items="${collection}" varStatus="index"> ${i} ${index.count} <!--i为集合中单个元素,index为循环状态 --> </c:forEach>
遍历Map <c:forEach var="m" items="${map}"> key=${m.key},value=${m.value} </c:forEach>
打印1到10 <c:forEach var="i" begin="1" end="10" step="1"> ${i} </c:forEach>
简单例子
<%@page import="tarena.jstl.Student,java.util.*"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <% Collection students = new ArrayList(); students.add(new Student("001","zhangsan",23)); students.add(new Student("002","lisi",22)); students.add(new Student("003","wangwu",21)); request.setAttribute("stus", students); %> <table border="1"> <c:forEach var="stu" items="${stus}"> <tr><td>${stu.id}</td> <td>${stu.name}</td> <td>${stu.age}</td> </tr> </c:forEach> </table> <h2> <% Map stus = new HashMap(); stus.put("001", new Student("001","zhangsan",23)); stus.put("002", new Student("002","lisi",22)); stus.put("003", new Student("003","wangwu",21)); request.setAttribute("stumap", stus); %> <c:forEach var="stu" items="${stumap}"> ${stu.value.id} ${stu.value.name} ${stu.value.age}<br> </c:forEach> <hr> <c:forEach items="${stus}" varStatus="status"> ${status.count} ${status.current.name} ${status.current.age}<br> </c:forEach> <hr> <c:forEach var="i" begin="0" end="2" step="1"> No.${i} ${stus[i].id} ${stus[i].name} ${stus[i].age}<br> </c:forEach> </h2> </c:forEach>
其他参考
http://www.cnblogs.com/hongten/archive/2011/05/14/2046005.html