JSTL

本文详细介绍了JSP标准标签库(JSTL)中的核心标签,包括数据输出、流程控制、循环迭代等功能,并覆盖了格式化标签、SQL标签、XML标签及JSTL函数等内容。

core标签库

<c:out>标签有如下属性:

 

属性                   描述                                  是否必要            默认值

value                  要输出的内容                      是              无

default              输出的默认值                       否        主体中的内容

escapeXml        是否忽略XML特殊字符     否              true

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:out标签实例</title>
</head>
<body>
<c:outvalue="${'<tag> , &'}"/>
</body>
</html>
 

<c:set>标签有如下属性:

 

属性                          描述                           是否必要     默认值

value                要存储的值                           否      主体的内容

target               要修改的属性所属的对象     否       无

property           要修改的属性                       否       无

var                    存储信息的变量                   否       无

scope                var属性的作用域                 否      Page

如果指定了target属性,那么property属性也需要被指定,多用修改javabean对象和Map对象

 

<c:remove>标签有如下属性:

 

属性                   描述                           是否必要                   默认值

var             要移除的变量名称               是                             无

scope         变量所属的作用域               否               所有作用域

 

<c:catch>标签

 

<c:catch var="catchException">
   <% int x = 5/0;%>
</c:catch>
 
<c:if test ="${catchException != null}">
   <p>The exception is :${catchException} <br />
   There is an exception:${catchException.message}</p>
</c:if>

 

<c:if>标签有如下属性:

 

属性                          描述                           是否必要     默认值

test                          条件                                是        无

var      用于存储条件结果的变量                 否        无

scope         var属性的作用域                        否        page

 

<c:choose>, <c:when>, <c:otherwise> 标签

 

<c:set var="salary" scope="session" value="${2000*2}"/>
<p>Your salary is : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
    <c:when test="${salary > 1000}">
        Salary is very good.
    </c:when>
    <c:otherwise>
        No comment sir...
    </c:otherwise>
</c:choose>

 

<c:import>标签有如下属性:

 

属性     描述      是否必要     默认值

url  需要检索和引入的页面的URL   是 无

context / 紧接着一个本地网络应用程序的名称 否 当前应用程序

charEncoding     所引入的数据的字符编码集      否 ISO-8859-1

var 用于存储所引入的文本的变量  否 Print to page

scope    var属性的作用域   否 Page

varReader   可选的用于提供java.io.Reader对象的变量  否 无

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>c:import标签实例</title>
</head>
<body>
<c:import var="data" url="http://www.w3cschool.cc"/>
<c:out value="${data}"/>
</body>
</html>

以上程序将会打印http://www.w3cschool.cc页面

 

<c:forEach>标签有如下属性:

 

属性     描述      是否必要     默认值

items    要被循环的信息     否 无

begin    开始的元素(0=第一个元素,1=第二个元素)  否 0

end       最后一个元素(0=第一个元素,1=第二个元素)     否 Last element

step      每一次迭代的步长 否 1

var 代表当前条目的变量名称   否 无

varStatus     代表循环状态的变量名称   否 无

 

<c:forEach var="i" begin="1" end="5">
   Item <c:outvalue="${i}"/><p>
</c:forEach>

 

<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:

delims  分隔符       是        无

 

<c:forTokens items="Zara,nuha,roshy" delims="," var="name">
   <c:out value="${name}"/><p>
</c:forTokens>
 

<c:forEach>标签里面的items是集合类对象或者数组,而<c:forTokens>标签里的items是字符串

 

<c:url>标签有如下属性:

属性     描述      是否必要     默认值

value    基础URL    是 无

context 本地网络应用程序的名称   否 当前应用程序

var 代表URL的变量名 否 Print to page

scope    var属性的作用域   否 Page

 

<c:url>标签将URL格式化为一个字符串,然后存储在一个变量中。这个标签在需要的时候会自动重写URL。var属性用于存储格式化后的URL。注意,如果value不以“/”开头,则不会自动重写URL

<c:url>标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数。

 

 

<c:param>标签

<c:url value="/index.jsp" var="myURL">
   <c:param name="trackingId" value="1234"/>
   <c:param name="reportType" value="summary"/>
</c:url>
<c:import url="${myURL}"/>

 

<c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签

属性     描述      是否必要     默认值

url  目标URL    是 无

context 紧接着一个本地网络应用程序的名称    否 当前应用程序


 格式化标签

JSTL格式化标签用来格式化并输出文本、日期、时间、数字。

标签     描述

<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:setDataSource> 指定数据源

<sql:query> 运行SQL查询语句

<sql:update>      运行SQL更新语句

<sql:param>       将SQL语句中的参数设为指定值

<sql:dateParam>       将SQL语句中的日期参数设为指定的java.util.Date对象值

<sql:transaction>      在共享数据库连接中提供嵌套的数据库行为元素,将所有语句以一个事务的形式来运行


XML 标签

JSTL XML标签库提供了创建和操作XML文档的标签。

在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的<Tomcat安装目录>\lib下:

标签     描述

<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包含一系列标准函数,大部分是通用的字符串处理函数。

函数     描述

fn:contains()       测试输入的字符串是否包含指定的子串

fn:containsIgnoreCase()   测试输入的字符串是否包含指定的子串,大小写不敏感

fn:endsWith()     测试输入的字符串是否以指定的后缀结尾

fn:escapeXml()   跳过可以作为XML标记的字符

fn:indexOf() 返回指定字符串在输入字符串中出现的位置

fn:join()       将数组中的元素合成一个字符串然后输出

fn:length()   返回字符串长度

fn:replace() 将输入字符串中指定的位置替换为指定的字符串然后返回

fn:split()       将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回

fn:startsWith()    测试输入字符串是否以指定的前缀开始

fn:substring()      返回字符串的子集

fn:substringAfter()    返回字符串在指定子串之后的子集

fn:substringBefore()  返回字符串在指定子串之前的子集

fn:toLowerCase()      将字符串中的字符转为小写

fn:toUpperCase()      将字符串中的字符转为大写

fn:trim()      移除首位的空白符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值