JSTL:
1.概述
(JavaServer Pages Standard Tag Library,JSP标准标签库)
开源标签库,apache的jakarta小组开发和维护
jsp2.0之后sun公司把jstl纳入标准
jstl有流程控制,一般和EL表达式配合使用
主要目标:代替jsp脚本,简化代码,用来展示数据【从四大作用域中获取数据】
2.分类
a. core标签 核心标签库 【重要,必学】
b. fmt标签 格式化标签库 【日期,数字格式化重要】
c. sql标签 数据库操作标签库 【违反了分层思想,安全性差,不推荐使用】
d. xml标签 解析xml标签库 【xml是核心的配置文件,不推荐前台调用】
e. fn标签 字符串的函数标签 【把后台字符串处理函数用在前台,推荐使用】
3.使用
1.下载jstl标签库的jar包
http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
jakarta-taglibs-standard-1.1.2.zip
2.把jstl相关的包放入lib目录下
jstl.jar standard.jar
3.在jsp页面的顶部追加taglib指令
core : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
fmt : <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
sql : <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
xml : <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
fn : <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
4.在jsp中使用jstl标签 【引用具体的标签库】
5.core标签使用
一、属性相关的标签:
1. c:out 标签 输出作用域中变量的值 getAttribute(key)
value 变量名或字符串的值 变量--》el表达式 常量 --》直接写
default value中的值不存在,给一个默认值
escapeXml 是否原样输出 ,过滤特殊标签,标记 ,
默认是true 原样输出 ,过滤样式
false 效果输出 ,不过滤样式
2. c:set 标签 向作用域中存储变量 setAttribute(key,value)
c:set 标签
var 变量名称
value 变量的值 变量名或字符串的值 变量--》el表达式 常量 --》直接写
scope 作用域 [page,request,session,application] , 默认值是page
target 目标的bean
property 目标bean的属性
target + property + value = 给bean的属性进行赋值
3. c:remove 在指定的作用域内删除变量属性 removeAttribute(key)
var 变量名称
scope 作用域
二、 流程控制相关的标签
1. c:if 进行单个的条件判断,没有else;多条件判断,写多个c:if
test 进行条件判断 el表达式 + el运算符
2. c:choose c:when c:otherwise 一套嵌套标签,进行多个条件判断
c:choose 多条件判断,相当于 if...else if... else... + switch...case...default...
c:when 嵌套在c:choose内部
test 进行条件判断 el表达式 + el运算符 [重要]
c:otherwise 嵌套在c:choose内部
3. c:forEach c:forTokens
c:forEach 标签 迭代/循环获取容器对象数据 相当于普通的for循环/foreach循环
var 循环中的临时变量
begin 开始的值
end 结束的值
step 步长,递增/递减变量,默认是1
items 集合对象 el表达式
varStatus 变量状态 【索引,序号】
index 索引 ,从0开始
count 计数,序号,从1开始
c:forTokens 标签 按照规则拆分字符串,使用方式与c:forEach一样
delims 字符串拆分规则
三、其他标签
c:redirect 重定向标签
url 重定向之后url地址
c:import 导入标签,读取url中的源代码
c:url 封装url地址
c:catch 异常处理标签,包含异常进行处理
6. fmt 格式化标签
fmt:formatDate 日期格式化标签
<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss" />
fmt:formatNumber 数字格式化标签
<fmt:formatNumber value="${money}" pattern="###,###.000" />
7. fn 字符串处理函数标签 和EL表达式、其他JSTL标签结合使用
fn:length(string) 字符串长度
fn:substring(string,start,end) 截取字符串
fn:contains(string) 是否包含字符串
fn:startsWith() 查找制定前缀开始
fn:endWith(string,substring) 查找指定后缀结尾
fn:replace(old,old_str,new_str) 替换字符串
fn:trim() 去除前后空格
fn:toLowerCase() 转换全小写
fn:toUpperCase() 转换全大写
fn:split() 切割字符串
fn:indexOf() 查找字符的索引
fn:join(array,delims) 数组连接字符串
fn:escapeXml() 原样/格式化输出 ,过滤格式 ,默认el表达式输出,不过滤格式