JSTL(JSP Standard Tag Library ,JSP 标准标签库)
- 拷贝jar包
- JSTL核心标签库
c:out 内容输出标签;
c:set 用来设置 4 种属性范围值的标签;
c:remove 用来删除指定范围中的属性;
c:catch 用来处理程序中产生的异常;
c:if 用来条件判断;
c:choose、c:when、c:otherwise 用来多条件判断;
c:forEach 用来遍历数组或者集合;
c:fortokens 分隔输出;
c:import 导入页面;
c:url 生成一个 url 地址;
c:redirect 客户端跳转
- 例子1
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("who", "我");
%>
<h2><c:out value="输出一个"></c:out></h2>
<h2><c:out value="${who }"></c:out></h2>
<h2><c:out value="${my }" default="张曼玉"></c:out></h2>
<c:set var="man" value="钢铁侠" scope="request"></c:set>
<h2><c:out value="${man }"></c:out></h2>
<c:set var="girlfriend" value="黑寡妇" scope="request"></c:set>
<h2><c:out value="${girlfriend }"></c:out></h2>
<c:remove var="girlfriend" scope="request"></c:remove>
<h2><c:out value="${girlfriend }" default="没有了"></c:out></h2>
</body>
</html>
- 例子2
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="girl" class="com.beeworkshop.model.Girl"></jsp:useBean>
<c:set property="id" target="${girl }" value="1"></c:set>
<c:set property="name" target="${girl }" value="周慧敏"></c:set>
<c:set property="age" target="${girl }" value="28"></c:set>
<h2>编号:${girl.id }</h2>
<h2>姓名:${girl.name }</h2>
<h2>年龄:${girl.age }</h2>
</body>
</html>
- 例子3
<c:catch var="errMsg">
<%
int a = 1 / 0;
%>
</c:catch>
<h2>异常信息:${errMsg }</h2>
- 例子4
<jsp:useBean id="girl" class="com.beeworkshop.model.Girl"></jsp:useBean>
<c:set property="id" target="${girl }" value="1"></c:set>
<c:set property="name" target="${girl }" value="周慧敏"></c:set>
<c:set property="age" target="${girl }" value="38"></c:set>
<c:if test="${girl.name=='黑寡妇' }" var="r" scope="page">
<h2>是黑寡妇</h2>
</c:if>
<c:if test="${girl.age>30 }">
<h2>太老啦</h2>
</c:if>
- 例子5
<c:choose>
<c:when test="${girl.age>18 } ">
<h2>大于18</h2>
</c:when>
<c:when test="${girl.age>25 } ">
<h2>大于25</h2>
</c:when>
<c:when test="${girl.age>30 } ">
<h2>大于30</h2>
</c:when>
<c:otherwise>
<h2>太小</h2>
</c:otherwise>
</c:choose>
- 例子6
<%
String[] builty = { "黑寡妇", "周慧敏", "王祖贤", "如花", "灭绝师太" };
pageContext.setAttribute("builty", builty);
%>
<c:forEach var="girl" items="${builty }">
${girl }<br/>
</c:forEach>
- 例子6
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="com.beeworkshop.model.Girl"%>
<%@ page import="java.util.*"%>
...
<%
List<Girl> list = new ArrayList<Girl>();
list.add(new Girl(1, "黑寡妇", 22));
list.add(new Girl(2, "周慧敏", 26));
list.add(new Girl(3, "王祖贤", 27));
list.add(new Girl(4, "如花", 28));
list.add(new Girl(5, "灭绝师太", 35));
pageContext.setAttribute("list", list);
%>
<table>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<c:forEach var="girl" items="${list }">
<tr>
<td>${girl.id }</td>
<td>${girl.name }</td>
<td>${girl.age }</td>
</tr>
</c:forEach>
</table>
- 例子7
<%
String str1 = "www.beeworkshop.com";
String str2 = "春香,秋香,冬香";
pageContext.setAttribute("str1", str1);
pageContext.setAttribute("str2", str2);
%>
<c:forTokens items="${str1 }" delims="." var="s1">
${s1 }<br />
</c:forTokens>
<c:forTokens items="${str2 }" delims="," var="s2">
${s2 }<br />
</c:forTokens>
- 例子8
<c:import url="jstl6.jsp"></c:import>
<c:url value="www.beeworkshop.com" var="url">
<c:param name="name" value="bee"></c:param>
<c:param name="sex" value="male"></c:param>
</c:url>
<a href="${url }">生成了一个地址</a>
生成的地址:http://localhost:8080/HeadFirstJspServlet1/www.beeworkshop.com?name=bee&sex=male
- 例子9
<c:redirect url="jstl5.jsp">
<c:param name="name" value="bee"></c:param>
<c:param name="sex" value="male"></c:param>
</c:redirect>
访问页面发生跳转:http://localhost:8080/HeadFirstJspServlet1/jstl5.jsp?name=bee&sex=male
可以使用内置对象param接收参数:
<h1>姓名:${param.name }</h1>
<h1>性别:${param.sex }</h1>