JSTL标签库分为5类:JSTL核心标签库、数据库标签库、I18N标签库、XML标签库和JSTL函数标签库
一.JSTL核心标签
使用JSTL核心标签可以完成JSP页面的基本功能,首先必须使用<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>来制定格式化标签
1.c:set标签
能够将变量存储在jsp范围中或者JavaBean属性中
(1)指定变量名和值,不指定scope
<c:set var="username" value="value"></c:set>
(2)value值存储到范围scope的变量中
<c:set var="varname" value="" scope="page..."></c:set>
(3)数据存到范围scope中
<c:set var="" scope=""></c:set>
(4)value值存到target对象的属性中
<c:set value="value" target="target" property="属性name"></c:set>
(5)数据存到target对象属性中
<c:set target="target" property="属性名"></c:set>
2.c:out标签
用来显示数据内容,相当于<%= %>
(1)指定显示的值
<c:out value="value" />
(2)添加默认值
<c:out value="value" default="..."/>
//通过default指定默认值
<c:out value="value" >...</c:out>
//通过标签间的实体内容指定默认值
3.c:remove标签
<c:remove var="number" scope="session">
//指定删除在session中的var
4.十个标签
<c:if test="" var="" [scope="..."] />
//test是判断表达式,var存放判断后的结果,scope指定var范围
<c:choose>
...
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
</c:choose>
//test判断表达式,标签中间是执行内容
<c:forEach [var=""] items="" [varStatus=""] [begin=""] [end=""] [steo=""] >内容</c:forEach>
//var存放现在指到的成员,items指被迭代的集合对象,varStatus保存现在指到的相关成员信息,begin表示开始,end结束位置,step步长
<c:forTokens [var=""] items="" delims="" [varStatus=""] [begin=""] [end=""] [step=""] >
//用于浏览字符串,并分割,items是被分割的字符串,delims制定分隔符
<c:import url="" [context=""] [var=""] [scope=""] [charEncoding=""] >本体内容</c:import>
//将文件包含到Jsp网页中
<c:param name="" value="">
//在<c:import>标签的本体内容中使用,可以将参数传递给被包含的文件
<c:url value="" [context="context"] [var="varName"] [scope=""] />
<c:param />
</c:url>
//生成URL。value:执行的URL,var存储被包含文件内容
<c:redirect url="" [context="context"] />
//重定向
二.数据库标签
JSP中使用SQL标签库,先申明:
<%@ taglib prefix=”sql” uri=”http ://java.sun.com/jsp/jstl/sql” %>
<sql:setDataSource url="" driver="" user=""" password="" />
//连接数据源操作
<sql:update sql="sqlUpdate" [var="varName"][scope=""][dataSource=""]>
//增删改查数据库。sql:数据库操作语句
<sql:query sql="" [dataSource=""][maxRows=""][startRows=""][var=""]>
//查询数据库中的数据
//数据记录都存在var中,其属性:rows一字段名称为索引的查询结果;rowsByIndex以数字为索引的查询结果;colunmNames字段名称;rowCount查询的数据数目
<sql:param value="">用于除了时间以外的数据类型
<sql:dateParam value="" type="time|date">用于时间类型
和<sql:query>一起用
<sql:transaction [dataSource=""][isolation=""]>
<sql:query>/<sql:update>
</...>
//isolation:处理互不影响等级,把所有操作放到一起执行,若有一个错误,则都不执行,设置成serializable属性值最好!
三.I18N格式化标签库
可以根据请求显示不同的语言
<%@ taglib prefix=”fmf” url=”http://java.sun.com/jsp/jstl/fmf” %>
<fmf: formatNumber value="" [type="number|currency|percent"]... />标签
//将数字格式化成数字、货币、百分比
<fmf:parseNumber />
//将格式化后的数字、货币、百分比都转换成数字,和上一个功能相反
<fmf:formatDate />
//格式化日期和时间
<fmf:parseDate />
/**将字符串的时间或日期换成日期时间类型*/
<fmf:setTimeZone />
//设定时区或将时区存储到属性范围中
<fmf:timeZone />
//设置标签体内所使用到的时区
<fmf:setLocale>
//设定用户的区域语言
<fmf:requestEncoding />
//设定接受的字符串编码格式
<fmf:setBundle />
//设定默认的数据来源
<fmf:message />
//读取本地资源文件
<fmf:param />//设定动态参数
<fmf:bundle />
//设定数据来源,亦可将资源文件绑定于标签中显示