1.<c:set/>給域對象賦值 2.<c:out/>獲取域對象的數據 3.<c:if/>單條件判斷 test:條件表達式。返貨true的時候,就會執行if標簽體的內容,否則不執行。 4.<c:choose/>+<c:when/>+<c:otherwise/>多條件判斷 5.<c:forEach/> ...
1 <%-- 保存數據 --%> 2 <c:set></c:set> 3 4 <%-- 獲取數據 --%> 5 <c:out value=""></c:out> 6 7 <%-- 單條件判斷 --%> 8 <c:if test=""></c:if> 9 10 <%-- 多條件判斷 --%> 11 <c:choose></c:choose> 12 <c:when test=""></c:when> 13 <c:otherwise></c:otherwise> 14 15 <%-- 用於迭代(迴圈) --%> 16 <c:forEach></c:forEach> 17 <c:forTokens items="" delims=""></c:forTokens> 18 19 <%-- 重定向 --%> 20 <c:redirect></c:redirect>
1.<c:set/>給域對象賦值
JSTL標簽
var:數據的名稱
value:保存的數據值
scope:保存到哪個域
page:page域
request:request域
session:session域
application:application域
1 <%-- 2 <c:set/> 給域對象賦值 3 --%> 4 <%-- jsp腳本 --%> 5 <% 6 //String name = "eric"; 7 //pageContext.setAttribute("name", name); 8 %> 9 <%-- 10 JSTL標簽 11 var:數據的名稱 12 value:保存的數據值 13 scope:保存到哪個域 14 page:page域 15 request:request域 16 session:session域 17 application:application域 18 --%> 19 <c:set var="name" value="jacky" scope="request"/> 20 ${requestScope.name}View Code
2.<c:out/>獲取域對象的數據
value:代表獲取域中的某個域中的名稱內容,如果數據在域中,必須使用EL表達式去獲取
default:預設值。當前需要獲取的內容為null時,那麼使用預設值代替
escapeXml:預設情況下為true,out標簽會把輸出的內容進行轉義。如果不需要轉義,則為false即可。
1 <%-- 2 2. <c:out/> 獲取域對象的數據 3 --%> 4 <%-- EL表達式 --%> 5 ${name }<br> 6 <%-- 7 value:代表獲取域中的某個域中的名稱內容,如果數據在域中,必須使用EL表達式去獲取 8 default:預設值。當前需要獲取的內容為null時,那麼使用預設值代替 9 escapeXml:預設情況下為true,out標簽會把輸出的內容進行轉義。如果不需要轉義,則為false即可。 10 --%> 11 <c:out value="${name }" default="<h3>預設值</h3>" escapeXml="false"></c:out>View Code
3.<c:if/>單條件判斷
test:條件表達式。返貨true的時候,就會執行if標簽體的內容,否則不執行。
1 <%-- 2 3.<c:if/>單條件判斷 3 --%> 4 <%-- 5 test:條件表達式。返貨true的時候,就會執行if標簽體的內容,否則不執行。 6 --%> 7 <c:if test="${10 > 8}"> 8 <input type="submit" value="提交"/> 9 </c:if>
4.<c:choose/>+<c:when/>+<c:otherwise/>多條件判斷
1 <%--
2 4.<c:choose/>+<c:when/>+<c:otherwise/> 多條件判斷
3 --%>
4 <%--模擬登錄 --%>
5 <c:set var="user" value="jacky" scope="session"/>
6 <c:choose>
7 <c:when test="${!empty sessionScope.user }">
8 歡迎回來,你的用戶名是:${sessionScope.user},<a href="">【退出登錄】</a>
9 </c:when>
10 <c:otherwise>
11 請先<a href="">註冊</a>或<a href="">登錄</a>
12 </c:otherwise>
13 </c:choose>
View Code
5.<c:forEach/>用於迭代或迴圈
begin:從哪個元素開始遍歷,從0開始 可以不寫
end:到哪個元素為止 可以不寫
step:增加步長。預設為1 可以不寫
items:需要遍歷的數據。(數組|List集合|Map集合),如果是獲取域的數據,那麼使用EL表達式獲取
var:每個元素名稱
varStatus:當前狀態對象。該對象封裝當前元素狀態信息。例如count屬性:表示當前遍歷的是哪個元素,從1開始
1 <%-- 2 5.<c:forEach/>用於迭代或迴圈 3 --%> 4 <% 5 //List集合 6 List<Student> list = new ArrayList<Student>(); 7 list.add(new Student("abc","123")); 8 list.add(new Student("def","123")); 9 list.add(new Student("ghi","123")); 10 list.add(new Student("jkl","123")); 11 pageContext.setAttribute("list", list); 12 %> 13 EL表達式:<br>${list[0]}<br>${list[1]}<br>${list[2]}<br>${list[3]}<br> 14 <%-- 15 begin:從哪個元素開始遍歷,從0開始 可以不寫 16 end:到哪個元素為止 可以不寫 17 step:增加步長。預設為1 可以不寫 18 items:需要遍歷的數據。(數組|List集合|Map集合),如果是獲取域的數據,那麼使用EL表達式獲取 19 var:每個元素名稱 20 varStatus:當前狀態對象。該對象封裝當前元素狀態信息。例如count屬性:表示當前遍歷的是哪個元素,從1開始 21 --%> 22 JSTL標簽:<br> 23 <c:forEach items="${list}" var="student" varStatus="varStats"> 24 學生${varStats.count} :${student}<br> 25 </c:forEach> 26 <hr/> 27 <% 28 //Map集合 29 Map<String,Student> map = new HashMap<String,Student>(); 30 map.put("001", new Student("eric","1234")); 31 map.put("002", new Student("rose","1234")); 32 map.put("003", new Student("jacky","1234")); 33 pageContext.setAttribute("map", map); 34 %> 35 EL表達式:<br>${map['001']}<br>${map['002']}<br>${map['003']}<br> 36 JSTL標簽:<br> 37 <%-- 38 註意:forEach標簽遍歷Map集合時,把每個Map的對象使用Entry封裝,Entry封裝鍵對象和值對象, 39 通過getKey()獲取鍵對象,通過getValue()獲取值對象 40 --%> 41 <c:forEach items="${map}" var="entry" varStatus="varStats"> 42 <%--學生${varStats.count}:${student}<br> --%> 43 編號:${entry.key} - 姓名:${entry.value.name} - 密碼:${entry.value.password}<br> 44 </c:forEach>View Code
6.<c:forTokens/>遍歷特殊字元串
items:需要遍歷的字元串
delims:指定分隔符號
var:每個內容的名稱
1 <%-- 2 6.<c:forTokens/>遍歷特殊字元串 3 --%> 4 <c:set var="str" value="java-net-php-平面設計" scope="request" /> 5 <%-- JSP腳本形式 --%> 6 <% 7 String str = (String)request.getAttribute("str"); 8 String[] strs = str.split("-"); 9 for(int i = 0; i < strs.length; i++){ 10 out.write(strs[i]+","); 11 } 12 %> 13 <br> 14 <%--JSTL標簽 --%> 15 <%-- 16 items:需要遍歷的字元串 17 delims:指定分隔符號 18 var:每個內容的名稱 19 --%> 20 <c:forTokens items="${str}" delims="-" var="s" varStatus="varStats"> 21 ${varStats.count}:${s}<br> 22 </c:forTokens>View Code