一、JSTL标签库介绍
Web程序员能够利用JSTL和EL来开发Web程序,取代传统直接在页面上嵌入Java程序的做法,以提高程序的阅读性、维护性和方便性。
二、JSTL标签库的分类
核心标签(用的最多)
格式化标签(JSTL格式化标签用来格式化并输出文本、日期、时间、数字)
SQL 标签(提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签)
XML 标签(库提供了创建和操作XML文档的标签)
JSTL 函数(JSTL包含一系列标准函数,大部分是通用的字符串处理函数)
三、核心标签库的使用。
我们必须要有两个jar包:jstl和standard,如果没有,可以在网上下载
首先我们要引入核心标签库。引入代码为:
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<c:out> | 用于在JSP中显示数据 |
<c:set> | 用于保存数据 |
<c:remove> | 用来删除数据 |
<c:cathch> | 用来处理产生错误的异常状况 |
<c:if> | Java程序中的if作用一样 |
<c:choose> | <c:when>和<c:otherwise>的父标签 |
<c:when> | 判断条件是否成立 |
<c:otherwis> | <c:when>否定执行 |
<c:import> | 检索一个绝对或相对URL,然后将其内容暴露给页面 |
<c:foreach> | 迭代标签 |
<c:param> | 用来给包含或重定向的页面传递参数 |
<c:redirect> | 重定向一个新的URL |
<c:url> | 使用可选的查询参数来创造一个URL |
这里只给出一些代码实例,如果要详细了解可参考:http://www.runoob.com/jsp/jsp-jstl.html
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<jsp:useBean id="person" scope="request" class="com.luther.TestWeb.PersonBean"/>//这里导入了一个JavaBean
<html>
<head>
<title>JSTL标签库的学习</title>
</head>
<body>
<hr/>
<%
Map<String,String> map=new HashMap<>();
request.setAttribute("map",map);
List<String> list=new ArrayList<>();
list.add("中国");
list.add("美国");
list.add("德国");
request.setAttribute("list",list);
%>
<c:out value="c:out 相当于<%=%>的功能" escapeXml="false" default="如果value没有值则输出默认值"></c:out><br>
<c:out value="c:out 相当于<%=%>的功能,escapeXml 为true:忽略XML的XML中的特殊字符" escapeXml="true" default="如果value没有值则输出默认值 为true:忽略XML的XML中的特殊字符"></c:out>
<hr/>
<c:set value="${100*100}" var="count" scope="request"></c:set>
<c:out value="${count}使用c:set的好处就是他可以在赋值的时候进行计算,来给JavaBean对象来赋值"></c:out><br>
<c:set property="name" target="${person}">哈哈</c:set>
<c:out value="${person.name}"/><br>
<c:set property="key" value="map的值" target="${map}"/>
<c:out value="${map.key}"/>
<hr/>
<c:forEach items="${list}" var="per">
<c:out value="${per}"/><br>
</c:forEach>
<hr/>
<c:if test="${count>2000}" var="bool" scope="request">
<p><c:out value="${count}"/> </p>
<p>${bool}</p>
</c:if>
<hr/>
<c:choose>
<c:when test="${count>20000}">
<p>大于20000</p>
</c:when>
<c:when test="${count>9999}">
<p>大于9999</p>
</c:when>
<c:otherwise>
<p>大大大小小小</p>
</c:otherwise>
</c:choose>
<hr/>
<c:import url="http://www.baidu.com" var="baidu" scope="session" charEncoding="utf-8"/>
<c:out value="${baidu}"/>
<hr/>
<c:remove var="baidu" scope="session"/>
<c:out value="${baidu}"/>//这里会输出网站的源码
<hr/>
<c:catch var="exceptionNum">
<% int i=9/0;%>
</c:catch>
<c:if test="${exceptionNum!=null}">
<c:out value="异常为:${exceptionNum.message}"/>
</c:if>
<hr/>
<%--<c:redirect url="demo1.jsp" scope="request" var="n">
<c:param name="name" value="你的名字"/>
</c:redirect>--%>
</body>
</html>
实例截图:
tips:格式化标签库,与下面的几个标签库,就不再这里展示了,可以参考上面的给出的参考文章。需要用到的时候,去查询就可以了,核心标签库应该掌握。