- 概念:JavaServer Pages Tag Library JSP標準標籤庫
- 做用:用於簡化和替換jsp頁面上的java代碼
- 使用標籤:
- 導入jstl相關jar包
- 引入標籤庫:taglib指令:<%@ taglib %>
- 使用標籤
- 常見的JSTL標籤
- if :至關於java代碼的if語句
- 屬性:
- test必須屬性,接受boolean表達式
- 若是表達式爲true,則顯示if標籤體內容,若是爲false,則不顯示標籤體內容
- 通常狀況下,test屬性值會結合el表達式一塊兒使用
- 注意:c:if標籤沒有else狀況,想要else狀況,則能夠再定義一個c:if標籤
- choose :至關於java的switch語句
- 使用choose標籤取出數字 至關於switch聲明
- 使用when標籤作數字判斷 至關於case
- otherwise標籤作其餘狀況的聲明 至關於default
- foreach :至關於java的for循環語句
- 練習:
- 需求:在request域中有一個存有User對象的List集合,須要使用jstl+el將list集合數據展現到jsp頁面的表格table中
c:if判斷標籤
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>if標籤</title>
</head>
<body>
<%--
c:if標籤
1.屬性:
* test必須屬性,接受boolean表達式
* 若是表達式爲true,則顯示if標籤體內容,若是爲false,則不顯示標籤體內容
* 通常狀況下,test屬性值會結合el表達式一塊兒使用
2.注意:c:if標籤沒有else狀況,想要else狀況,則能夠再定義一個c:if標籤
--%>
<c:if test="true">
我是真...
</c:if>
<br>
<%
//判斷request域中的一個list集合爲是否爲空,若是不爲null則顯示遍歷集合
List list=new ArrayList();
list.add("aaaa");
request.setAttribute("list",list);
request.setAttribute("number",3);
%>
<c:if test="${not empty list}">
遍歷list集合.....
</c:if>
<br>
<c:if test="${number%2!=0}">
${number}爲奇數...
</c:if>
<c:if test="${number%2==0}">
${number}爲偶數...
</c:if>
</body>
</html>
c:choose與c:when標籤
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>choose標籤</title>
</head>
<body>
<%--
完成數字編號對應的是星期幾
1.域中存儲一數字
2.使用choose標籤取出數字 至關於switch聲明
3.使用when標籤作數字判斷 至關於case
4.otherwise標籤作其餘狀況的聲明 至關於default
--%>
<%
request.setAttribute("number",3);
%>
<c:choose>
<c:when test="${number==1}">星期一</c:when>
<c:when test="${number==2}">星期二</c:when>
<c:when test="${number==3}">星期三</c:when>
<c:when test="${number==4}">星期四</c:when>
<c:when test="${number==5}">星期五</c:when>
<c:when test="${number==6}">星期六</c:when>
<c:when test="${number==7}">星期天</c:when>
<c:otherwise>數字輸入有誤</c:otherwise>
</c:choose>
</body>
</html>
forEach遍歷標籤
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>foreach標籤</title>
</head>
<body>
<%--
foreach:至關於java代碼的for語句
1.完成重複操做
for(int i=0;i<10;i++){
}
* 屬性:
begin:開始值
end:結束值
var:臨時變量
step:步長
varStatus:循環狀態對象
index:容器中元素的索引,從0開始
count:循環次數,從1開始
2.遍歷容器
List<User> list;
for(User user:list){
}
items:容器對象
var:容器中的臨時變量
varStatus:循環狀態對象
index:容器中元素的索引,從0開始
count:循環次數,從1開始
--%>
<c:forEach begin="1" end="10" var="i" step="2" varStatus="s">
<h2>${i} ${s.index} ${s.count} </h2><br>
${s}<br>
</c:forEach>
<hr>
<%
List list=new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str" varStatus="s">
<h2>${s.index} ${s.count} ${str}</h2>
</c:forEach>
</body>
</html>
對象列表輸出案例
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Test</title>
</head>
<body>
<%
List list=new ArrayList();
list.add(new User("張三",23,new Date()));
list.add(new User("李四",24,new Date()));
list.add(new User("王五",25,new Date()));
request.setAttribute("list",list);
%>
<table border="1" width="500" align="center">
<tr>
<th>編號</th>
<th>姓名</th>
<th>年齡</th>
<th>生日</th>
</tr>
<%-- 數據行--%>
<c:forEach items="${list}" var="user" varStatus="s">
<c:if test="${s.count%2==0}">
<tr bgcolor="#faebd7">
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birStr}</td>
</tr>
</c:if>
<c:if test="${s.count%2!=0}">
<tr bgcolor="aqua">
<td>${s.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
<td>${user.birStr}</td>
</tr>
</c:if>
</c:forEach>
</table>
</body>
</html>