jstl标签库
需要使用的jar文件:jstl.jar,standard.jar。
1.引入文件信息<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2.c:
使用标签
set标签
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="com.javaweb.beans.*,java.util.*"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<br />--------------------c:set 为bean属性赋值------------------
<br />
<%
Student stu = new Student();
pageContext.setAttribute("stu", stu);
%>
<c:set value="里斯" property="name" target="${pageScope.stu}"></c:set>
stu = ${stu}
<br />
<br />--------------------c:set 为Map属性赋值------------------
<br />
<%
Map<String, Object> map = new HashMap<>();
pageContext.setAttribute("map", map);
%>
<c:set value="历史" property="name" target="${pageScope.map}"></c:set>
<c:set value="科目" property="types" target="${pageScope.map }"></c:set>
map = ${map };
<br /> map.value1 = ${map.name }; map.value2 = ${map.types };
remove标签
<%
Student stu = new Student();
pageContext.setAttribute("stu", stu);
%>
<br />--------------------c:remove 删除------------------
<br />
<c:remove var="stu" />
stu = ${stu };
catch标签
<br />--------------------c:cath 捕获异常------------------
<br />
<c:catch var="ex">
<%
int i = 3 / 0;
%>
</c:catch>
ex = ${ex.message };
out标签
1.当EL表达式获取不到内容时,可以指定默认内容。
2.不指定escapeXml属性时,不会解析html代码
3.el表达式会自定解析html代码
<br />--------------------c:out 输出------------------
<br />
xxx =<c:out value="${xxx}" default="计算机"></c:out>
<br />
xxx = ${empty xxx ? '计算机':xxx}
<br />
<c:set var="topic" value="<h1>我哎呦</h1>"></c:set>
topic =<c:out value="${topic}"></c:out>
<br />
topic =<c:out value="${topic}" escapeXml="false"></c:out>
<br /> topic = ${topic}
if标签
<br />--------------------c:if------------------
<br />
<c:set var="username" value="张三"></c:set>
<c:if test="${username == '张三'}">
<a href="#">进入系统</a>
</c:if>
choose标签
匹配原则类似于Java中的switch,逐行匹配,满足条件,退出。
标签中只能放<c:when> 和<c:otherwise>。
<br />--------------------c:choose------------------
<br />
<c:set var="pageNum" value="5"></c:set>
<c:set var="pagetotal" value="5"></c:set>
<c:choose>
<c:when test="${pageNum == 1}">
首页 上一页 <a href="#">下一页</a>
<a href="#"> 末页 </a>
<br />
当前是${pageNum}/${pagetotal}
</c:when>
<c:when test="${pageNum == pagetotal}">
<a href="#">首页</a>
<a href="#">上一页</a>下一页 末页<br />
当前是${pageNum}/${pagetotal}
</c:when>
<c:otherwise>
<a href="#">首页</a>
<a href="#">上一页</a>
<a href="#">下一页</a>
<a href="#">末页</a>
<br />
</c:otherwise>
</c:choose>
forEach标签
<head>
<style type="text/css">
.odd{
background-color: blue;
}
.even{
background-color: red;
}
</style>
</head>
<br />--------------------c:forEach------------------
<br />
<%
List<Student> stus = new ArrayList<>();
stus.add(new Student(11,"张1"));
stus.add(new Student(11,"张2"));
stus.add(new Student(11,"张3"));
stus.add(new Student(11,"张4"));
stus.add(new Student(11,"张5"));
stus.add(new Student(11,"张6"));
stus.add(new Student(11,"张7"));
pageContext.setAttribute("stus", stus);
%>
<table border="1">
<tr>
<th>序号</th>
<th>年龄</th>
<th>姓名</th>
</tr>
<c:forEach items="${stus }" var ="stu" varStatus="vs">
<!--实现表格逐行变色-->
<tr class="${vs.count % 2 ==0 ? 'odd':'even'}">
<!--vs.count获取当前遍历的次数 -->
<td>${vs.count}</td>
<td>${stu.age}</td>
<td>${stu.name}</td>
</tr>
</c:forEach>
</table>