1. 概念
JavaServer Pages Tag Library JSP标准标签库
由Apache组织提供的开源的免费的jsp标签 <标签>
2. 作用
3. 使用步骤
<br />1. 导入`jstl`相关`jar`包
2. 引入标签库:taglib指令 <%@ taglib %>
3. 使用标签
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
<%@ taglib uri="uri" prefix="prefixOfTag" %>
4. 常用的JSTL标签
**4.1. **`**if**`**:** 相当于`java`代码的`if`语句<br />
1. 属性:
- **test **必须属性,接受`boolean`表达式 。 [ `test`可能会结合`el`表达式一起使用 ]-
true ,显示标签体内容
- `false`,不显示标签体内容2. 注意:- **c:if **标签没有**else**情况- 想要`else`情况,则可以在定义一个`c:if`标签
<c:if test="${not empty list}">输出list</c:if><c:if test="${number %2!=0}">${number}奇数</c:if>
**4.2. **`**choose**`**: **相当于`java`代码的`switch`语句<br />
1. 使用choose标签声明 相当于switch声明
2. 使用when标签做判断 相当于case
3. 使用otherwise标签做其他情况的声明 相当于default
<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>
**4.3. **`**foreach**`**: **相当于`java`代码的`for`语句
1. 常规循环<br />begin : 开始值<br />end: 结束值<br />var: 临时变量<br />step: 步长<br />varStatus:状态- index:容器中元素的索引,从 `0` 开始 。- count:循环次数,从 `1` 开始 。2. 增强循环
items: 容器对象
var : 容器中元素的临时变量
varStatus:状态
- index:容器中元素的索引,从 `0` 开始 。- count:循环次数,从 `1` 开始 。
//1.普通for循环for(int i=0;i<10;i++){//....}//==>><c:forEach begin="1" end="10" var="i" step="1">${i}</c:forEach>//2.增强for循环for(String i:list){//....}//==>><c:forEach item="${list}" var="str" varStatus="status">${status.index} ${status.count} ${str}</c:forEach>
5. 练习
<br />需求:<br />在`request`域中有一个存有`User`对象的`List`集合。需要使用`jstl+el`将`list`集合数据展示到`jsp`页面的表格`table`中 。
<%@ page import="cn.User" %><%@ page import="java.util.List" %><%@ page import="java.util.ArrayList" %><%@ 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="red"><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="green"><td>${s.count}</td><td>${user.name}</td><td>${user.age}</td><td>${user.birStr}</td></tr></c:if></c:forEach></table></body></html>
效果图:
