java--JSTL(2)

迭代標籤(重要內容)
< c:forEach/>用於遍歷集合中的對像。
< c:forTokens/>用於遍歷字符串中用特定分隔符分隔的字符串。–String.split(“#”);
這裏寫圖片描述
forEach用於遍歷集合中的對像。
基本語法:
1.< c:forEach var=“迭代變量” item=“${集合名稱}” varStatus=“迭代下標變量”>
        迭代部分
< /c:forEach>
2.forEach的begin(開始索引)、end(結束索引)、step(步長)屬性:
        < c:forEach begin=0 end=10 step=“2”>…將輸出0,2,4,6,810
使用varStatus屬性:
1.varStatus屬性,用於設置一個javax.servlet.jsp.jstl.core.LoopTagStatus類型的命名變量:
2.它包含以下信息:
        count – 當前元素在集合中的序號,從1開始。
        index - 記錄當前元素的下標,從0開始。
        first - 判斷是否是第一個元素。
        Last - 判斷是否是最後一個元素。
choose,when,otherwise標籤:
這幾個標籤共同使用可以實現Java中的if…else語句的功能。
使用c:when必須遵循以下語法規則:
1.< c:when/>和< c:otherwise/>不能單獨使用,它必須位於< c:choose>內。
2.< c:otherwise/>必須位於c:when之後。
用forTokens遍歷一個字符串:
< c:forTokens var=”v” items=”a,b,c,d,e,f” delims=”,”>
        < c:out value=”${v}”>< /c:out>
< /c:forTokens>
按,(逗號)對字符串”a,b,c,d,e,f”進行分隔。
URL相關的標籤:
1.< c:import/>包含其他web資源,功能類似與(動態包含)。
        < c:import url=“web資源”/>
2.< c:url/>按特定的方式重寫URL。
        < c:url value=“/aaa.jsp”/>總是以/開頭,如果只使用value屬性爲直接使用或輸出。
        < c:url value=“/…” var=“someVar” scope=“…”/>也可以通過這樣的方式將重寫的url放到某個範圍中,然後再取出來使用。
3.< c:redirect/>負責重定向。
        < c:redirect url=“重定向到的資源”/>
        在使用< c:redirect時可以帶更多的參數:
        < c:redirect url=“/…”>
                < c:param name=“someName” value=“someValue”/>
        < /c:redirect>
< c:url>
這裏寫圖片描述

<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- prefix前綴,相當於xml的命名空間 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSTL用法演示2</title>
  </head>

  <body>

    <font color='red' size='6'>c:forEach標籤--for循環</font><br/>
    <font style="font-weight: bold;">普通for循環:</font><br/>
    普通for循環:<c:forEach begin="0" end="10" var="i" step="2">
        ${i}&nbsp;
    </c:forEach>
    <br/>
    <font style="font-weight: bold;">增強for循環:</font><br/>

    <%
        String str[]={"qq","da","sds"};
        pageContext.setAttribute("str", str);
     %>
   1.遍歷數組:<c:forEach items="${str}" var="s">
        ${s}&nbsp;&nbsp;&nbsp;&nbsp;
    </c:forEach><br/>
    <%
        List list=new ArrayList();
        list.add("aaa");
        list.add("bbb");
        list.add("fff");
        list.add("dddd");
        pageContext.setAttribute("list", list);
     %>
   2.遍歷List:<c:forEach items="${list}" var="e">
        ${e}&nbsp;&nbsp;&nbsp;&nbsp;
    </c:forEach><br/>
    <%
        Map map=new HashMap();
        map.put("name", "lisi");
        map.put("age", "24");
        map.put("addr", "湖南");
        pageContext.setAttribute("map", map);
     %>
   3.遍歷Map:<c:forEach items="${map}" var="m">
        ${m}:::${m.key},${m.value}<br/>
    </c:forEach><!-- m是一個entry -->


    <%
        List<User> list2=new ArrayList<User>();
        list.add(new User("ass",23));
        list.add(new User("ffrgr",56));
        list.add(new User("fefr",23));
        list.add(new User("regrgr",67));
        pageContext.setAttribute("list2", list2);
     %>
     <!-- index爲下標(索引)的序號,count爲計數-->
   4.遍歷List2&lt;User&gt;(元素爲值對象的集合):<c:forEach items="${list2}" var="u" varStatus="idx">
        ${idx.index},${idx.count}:&nbsp;
        <c:out value="${u.name}"></c:out>&nbsp;&nbsp;&nbsp;&nbsp;
        <c:out value="${u.age}"></c:out><br/>
    </c:forEach><br/>


    <font color='red' size='6'>c:choose,when,otherwise標籤</font><br/>
    <c:set value="65" var="score" scope="session"></c:set>
    ${score}:<c:choose>
        <c:when test="${score>=90}">
            優秀<br/>
        </c:when>
        <c:when test="${score>=80}">
            良好<br/>
        </c:when>
        <c:when test="${score>=70}">
            中等<br/>
        </c:when>
        <c:otherwise>
            掛科<br/>
        </c:otherwise>
    </c:choose>

    <font color='red' size='6'>forTokens標籤 </font><br/>
    <c:forTokens items="23,sfd,324,sgsdg,3,小明" delims="," var="x">
        ${x}&nbsp;&nbsp;&nbsp;&nbsp;
    </c:forTokens>
    <br/><br/>
    <font color='red' size='6'>url相關的標籤: url,import,redirect </font><br/>
    <font style="font-weight: bold;">重寫url技術,路徑中的斜槓就是項目根目錄:</font><br/>
    絕對地址:<c:url value="/show"/>&nbsp;&nbsp;&nbsp;&nbsp;
    <a href='<c:url value="/show"/>'>顯示所有用戶信息</a><br/>
    <font style="font-weight: bold;">動態包含:</font><c:import url="/jsps/foot.jsp"></c:import>
    <br/>
    <%--小心,頁面中寫了c:redirect,就會立即重定向到其它頁面。不會再停留在當前頁面
    <c:redirect url="/jsps/show.jsp"></c:redirect>
     response.sendRedirect("/jsps/show.jsp");
    --%>

    <font color='red' size='6'>c:remove標籤:移除屬性變量, 和set是相反 </font><br/>
    刪除分數score:<c:remove var="score"/><br/>
    score:${score}

        <br/><br/><br/><br/><br/><br/>
  </body>
</html>

這裏寫圖片描述

這裏寫圖片描述

重寫URL

package cn.hncu.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.hncu.domain.User;

public class ShowServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        List<User> users=new ArrayList<User>();
        for(int i=0;i<10;i++){
            User u=new User("jack"+i,20+i);
            users.add(u);
        }
        request.setAttribute("users", users);
        request.getRequestDispatcher("/jsps/show.jsp").forward(request, response);
    }

}
<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- prefix前綴,相當於xml的命名空間 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>顯示用戶信息</title>
    <style type="text/css">
        table {
            border: 1px solid green;
            border-collapse: collapse;
        }
        td{
            border: 1px solid green;
        }
        th{
            border: 1px solid green;
        }
        .a{
            background-color: gray;
        }
    </style>
  </head>

  <body>

    <font color='red' size='6'>url相關的標籤: url---顯示所有用戶信息</font><br/>
    <!-- 重寫url技術,路徑中的斜槓就是項目根目錄 -->
    <c:if test="${!empty users}">
        <table>
            <tr><th>姓名</th><th>年齡</th></tr>
            <c:forEach items="${users}" var="u" varStatus="idx">
                <c:if test="${idx.count%2==0}" var="boo">
                    <tr class="a">
                </c:if>
                <c:if test="${!boo}">
                    <tr>
                </c:if>
                <td>${u.name}</td><td>age=${u.age}</td></tr>
            </c:forEach>
            </table>
    </c:if>
  </body>
</html>

動態包含

<%@ page language="java" import="java.util.*,cn.hncu.domain.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!-- prefix前綴,相當於xml的命名空間 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSTL用法演示2</title>
  </head>

  <body>

    <font color='red'>被包含的jsp</font><br/>
    <c:url value="/imgs/1.jpg"></c:url><br/>
    <img src='<c:url value="/imgs/1.jpg"/>' height="200"/>
  </body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章