1. <c:forTokens var="value" items="a-b-c-d" delims="-">
    2. ${value}<br>
    3. </c:forTokens>

    image.png

    JSTL函数标签库,用来处理字符串,头标签描述
    <%@ taglib uri=”http://java.sun.com/jsp/jstl/functions“ prefix=”fn”%>
    例如

    1. ${requestScope.value}<br>
    2. ${fn:length(requestScope.value)}<br>
    3. ${fn:contains(requestScope.value, "c")}<br>
    4. ${fn:indexOf(requestScope.value, "c")}<br>

    image.png

    JSTL格式化标签库,用来处理日期,实现格式化,头标签描述
    <%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt“ prefix=”fmt”%>
    例如

    1. <fmt:formatDate value="${requestScope.date}" pattern="yyyy-MM-dd kk:mm:ss"></fmt:formatDate>

    image.png

    部分购物小系统代码用EL、JSTL代替示例

    1. <%
    2. ArrayList<Commodity> commodityArrayList=(ArrayList<Commodity>)request.getAttribute("commodityArrayList");
    3. for(Commodity commodity:commodityArrayList){
    4. out.write("<tr>");
    5. out.write("<td><input type=\"checkbox\" name=\"cid\" value=\""+commodity.getCid()+"\"></td>");
    6. out.write("<td>"+commodity.getCname()+"</td>");
    7. out.write("<td>"+commodity.getCbalance()+"</td>");
    8. out.write("</tr>");
    9. }
    10. %>
    1. <c:forEach var="commodity" items="${requestScope.commodityArrayList}">
    2. <tr>
    3. <td><input type="checkbox" name="cid" value="${commodity.cid}"></td>
    4. <td>${commodity.cname}</td>
    5. <td>${commodity.cbalance}</td>
    6. </tr>
    7. </c:forEach>
    <%
        HashMap<Commodity, Integer> shoppingCart=(HashMap<Commodity, Integer>)session.getAttribute("shoppingCart");
        Set<Commodity> keys= shoppingCart.keySet();
        Iterator<Commodity> it= keys.iterator();
        while (it.hasNext()){
            Commodity c= it.next();
            Integer count=shoppingCart.get(c);
            out.write("<tr>");
            out.write("<td>"+c.getCname()+"</td>");
            out.write("<td>"+c.getCbalance()+"</td>");
            out.write("<td>"+count+"</td>");
            out.write("</tr>");
        }
    %>
    
    <c:forEach var="map" items="${sessionScope.shoppingCart}">
        <tr>
            <td>${map.key.cname}</td>
            <td>${map.key.cbalance}</td>
            <td>${map.value}</td>
        </tr>
    </c:forEach>