1.JSTL标签库安装
JSTL的概念:
JSP标准标签库(JSP Standard Tag Library)是一个实现 Web 应用程序中常见的通用功能的定制标记库集
功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问
JSTL标签库由几个子标签库组成,主要分为以下几种:核心标签、XML标签、格式化标签(I18N)、SQL标签、函数标签库。
JSTL的安装:
将jstl.jar、standard.jar放在WEB-INF/lib目录下
jstl.jar提供了标签开发接口类
standard.jar 提供了标签库的实现类
在JSP中使用taglib伪指令导入JSTL标签库
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core”%>导入JSTL核心标签库
通过<c:XXX>可以使用JSTL核心标签库标签
标签库集:
JSTL
|
前置名
|
URI
|
示例
|
核心
标签库
|
c
|
http://java.sun.com/jsp/jstl/core
|
<c:out>
|
I18N格式标签库
|
fmt
|
http://java.sun.com/jsp/jstl/fmt
|
<fmt:formatDate>
|
SQL
标签库
|
sql
|
http://java.sun.com/jsp/jstl/sql
|
<sql:query>
|
XML标签库
|
xml
|
http://java.sun.com/jsp/jstl/xml
|
<x:forEach>
|
函数
标签库
|
fn
|
http://java.sun.com/jsp/jstl/functions
|
${fn:split()}
|
JSTL核心标签库
标签
|
描述
|
<c:catch>
|
捕获异常
|
<c:out>
|
打印输出
|
<c:set>
|
设置变量值
|
<c:remove>
|
删除变量
|
<c:if>
|
条件判断
|
<c:choose>
|
<c:forEach>
|
循环控制
|
<c:forToken>
|
<c:url>
|
重写URL地址
|
<c:import>
|
导入资源
|
<c:redirect>
|
重定向请求
|
2.一般用途的JSTL标签:
<c:catch>捕获JSP页面抛出的异常
例<c:catch var=“e”> action that might throw an exception</c:catch>
<c:out>打印输出内容到页面
类似JSP表达式
属性value包含特殊字符,使用转义字符
属性name变量没有初始化,使用default属性指定默认值
3.属性用途的JSTL标签
尽管EL可以灵活地操作变量,但不能声明或删除变量
<c:set>标签设置变量值或对象的属性值
<c:set var=“num” value=“${4*4}” />
<c:set target=“user”property=“userName”>${“susan”}</c:set>
<c:remove>用于从指定作用域内删除变量
<c:remove var=“num”scope=“session”/>
4.控制用途的JSTL标签
(1)<c:if>与java语言的if语句最大的不同是没有else语句对应标签
<c:if test=“${x==9}”>${x}</c:if>
(2)<c:choose>类似Java的switch-case语句。
该标签只当做<c:when>和<c:otherwise>的父标签
(3)<c:forEach>和<c:forTokens>类似于Java的for语句
<c:forEach>使用begin、end、step属性指定循环次数
对于集合和字符串使用items属性指定循环对象
<c:forEach>提供varStatus属性,用来存放现在指到的成员的信息。另外四个属性:
index:现在指到成员的索引
count:总共指到成员的总数
first:现在指到的成员是否为第一个成员
last:现在指到的成员是否为最后一个成员
5.其他种类的标签
处理与URL相关的标签
<c:url>用来产生一个URL,“/”表示上下文路径
<c:import>可以把其他静态或动态文件包含至本身JSP页面。与JSP动作<jsp:include>的不同在于<c:import>可以包含位于Web程序之外的资源
<c:redirect>用于把客户请求重定向到另一个资源
标签
|
描述
|
<fmt:formatNumber>
|
使用指定的格式或精度格式化数字
|
<fmt:parseNumber>
|
解析一个代表着数字,货币或百分比的字符串
|
<fmt:formatDate>
|
使用指定的风格或模式格式化日期和时间
|
<fmt:parseDate>
|
解析一个代表着日期或时间的字符串
|
<fmt:bundle>
|
绑定资源
|
<fmt:setLocale>
|
指定地区
|
<fmt:setBundle>
|
绑定资源
|
<fmt:timeZone>
|
指定时区
|
<fmt:setTimeZone>
|
指定时区
|
<fmt:message>
|
显示资源配置文件信息
|
<fmt:requestEncoding>
|
设置request的字符编码
|
SQL标签:
JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。引用SQL标签库的语法如下:
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
标签
|
描述
|
<sql:setDataSource>
|
指定数据源
|
<sql:query>
|
运行SQL查询语句
|
<sql:update>
|
运行SQL更新语句
|
<sql:param>
|
将SQL语句中的参数设为指定值
|
<sql:dateParam>
|
将SQL语句中的日期参数设为指定的java.util.Date 对象值
|
<sql:transaction>
|
在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行
|
XML标签:
JSTL XML标签库提供了创建和操作XML文档的标签。引用XML标签库的语法如下:
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
在使用xml标签前,还需要导入XercesImpl.jar和xalan.jar库
http://www.apache.org/dist/xerces/j/
http://xml.apache.org/xalan-j/index.html
标签
|
描述
|
<x:out>
|
与<%= ... >,类似,不过只用于XPath表达式
|
<x:parse>
|
解析 XML 数据
|
<x:set>
|
设置XPath表达式
|
<x:if>
|
判断XPath表达式,若为真,则执行本体中的内容,否则跳过本体
|
<x:forEach>
|
迭代XML文档中的节点
|
<x:choose>
|
<x:when>和<x:otherwise>的父标签
|
<x:when>
|
<x:choose>的子标签,用来进行条件判断
|
<x:otherwise>
|
<x:choose>的子标签,当<x:when>判断为false时被执行
|
<x:transform>
|
将XSL转换应用在XML文档中
|
<x:param>
|
与<x:transform>共同使用,用于设置XSL样式表
|
JSTL函数:
JSTL包含一系列标准函数,大部分是通用的字符串处理函数。引用JSTL函数库的语法如下:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
标签
|
描述
|
fn:contains()
|
测试输入的字符串是否包含指定的子串
|
fn:containsIgnoreCase()
|
测试输入的字符串是否包含指定的子串,大小写不敏感
|
fn:endsWith()
|
测试输入的字符串是否以指定的后缀结尾
|
fn:escapeXml()
|
跳过可以作为XML标记的字符
|
fn:indexOf()
|
返回指定字符串在输入字符串中出现的位置
|
fn:join()
|
将数组中的元素合成一个字符串然后输出
|
fn:length()
|
返回字符串长度
|
fn:replace()
|
将输入字符串中指定的位置替换为指定的字符串然后返回
|
fn:split()
|
将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回
|
…
|
|
网友评论