JSTL是一个标准的已制定好的标签库
使用两个jar包
1.jstl.jar
2.standard.jar
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> |
核心标签库
功能分类 标签名称
1.表达式操作 out、set、remove、catch
2.流程控制 if、choose、when、otherwise
3.迭代操作 forEach、forTokens
4.URL操作 import、param、url、redirect
<c:out>
功能: <c:out>主要用来显示数据的内容
value 需要显示出来的值
default 如果value的值为null,则显示default的值
escapeXml 是否转换特殊字符,如:<转换成<
实例:使用核心标签库,并输出数据
步骤一:将标签库中所有的.jar包(内部是所有的标签处理器)放到/WEB_INF/lib下,将
所有的.tld(内部是所有的标签库描述)放到/WEB-INF/tlds下
步骤二:在Jsp页面中引用核心标签(c_out.jsp)
<%@ page contentType="text/html;charset=gbk" language="java"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<c:set>主要用来将变量存储至JSP范围中 或是JavaBean的属性或Map对象中。
value 要被存储的值
var 欲存入的变量名称
scope var变量的JSP范围
target JavaBean或Map对象
property 指定target对象的属性
<c:remove>
功能:主要负责移除变量
var 欲移出的变量名称
scope Var变量的JSP范围
<c:catch>
功能:主要用于捕获异常
var 用来储存错误信息的变量
<c:if>
功能:主要用于进行if判断,如果为true,则输出标签体中的内容
test 如果表达式的结果为true,则执行体内容,false则相反
var 用来存储test运算的结果(true或false)
scope Var变量的JSP范围
<c:choose>,<c:when>,<c:otherwise>
<c:when>中属性列表:
test 如果表达式的结果为true,则执行本体内容,false则相反
<c:choose>
<c:when test="${c.color eq 'red'}">
<font color=red face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/></font>
</c:when>
<c:when test="${c.color eq 'blue'}">
<font color=blue face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/></font>
</c:when>
<c:otherwise>
<font color=green face="华文行楷">你选择的颜色是:<c:out value="${c.color}"/>
</c:otherwise>
</c:choose>
<c:forEach>
功能: <c:forEach>为循环控制,它可以将数组,集合(Collection)中的成员循序浏览一遍。
var 用来存放现在指定的成员
items 被迭代的集合对象
varStatus 用来存放现在指的相关成员信息
begin 开始的位置
end 结束的位置
step 每次迭代的间隔数
8<c:forTokens>
功能:将字符串以指定的一个或多个字符分割开来
var 用来存放现在的成员 否 无
items 被迭代的字符串 是 无
delims 定义用来分割字符串的字符 是 无
varStatus 用来存放现在指定的相关成员信息 否 无
begin 开始位置 否 0
end 结束位置 否 最后一个成员
step 每次迭代的间隔数 否 1
<c:import>
功能: <c:import>可以把其他静态或动态文件包含至本身JSP网页。
url 文件被包含的地址
context 相同容器下,其它web必须以“/”开头
var 储存被包含文件的内容
scope var变量的JSP范围
charEncoding 被包含文件内容的编码格式
varReader 储存被包含的文件的内容
<c:url>
功能: <c:url>主要用来产生一个URL
名称 说明 必须 默认值
value 执行的URL 是 无
context 相同容器下,必须以“/”开头 否 无
var 储存被包含文件的内容 否 无
scope var变量的JSP范围 否 page
<c:redirect>
功能: <c:redirect>可以将客户端的请求从一个JSP网页导向到其它文件。
url 导向的目标地址
context 相同容器下,必须以“/”开头
JSTL中的Functions
fn:contains函数:用于判断在源字符串中是否包含目标字符串。
fn:containsIgnoreCase函数:用于判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写。
fn:startsWith函数:用于判断源字符串是否以指定的目标字符串开头。
fn: endsWith函数:用于判断源字符串是否以指定的目标字符串结尾。
fn:indexOf函数:用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引。
fn:replace函数:用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。
fn:substring函数:用于获取源字符串中的特定子字符串。
fn:substringBefore函数:用于获取源字符串中指定子字符串之前的子字符串。
fn: substringAfter函数:用于获取源字符串中指定子字符串之后的子字符串
fn:split函数:用于将源字符串拆分为一个字符串数组。
fn:join函数:用于将源字符串数组中的所有字符串连接为一个字符串。
fn:toLowerCase函数:用于将源字符串中的所有字符改为小写。
fn: toUpperCase函数:用于将源字符串中的所有字符改为大写。
fn:trim函数:用于将源字符串中的开头和末尾的空格删除。
fn:escapeXml函数:用于将源字符串中的字符“<”、“>”、“””和“&”等转换为转义字符。
fn:length函数:用于返回字符串中的字符的个数,或者集合和数组的元素的个数