JSTL
2016-05-31 21:43
417 查看
简介
JSTL(JSPStandard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持 JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。JSTL标签的配置和使用:
配置:将jstl.jar和standard.jar两个jar包加入使用:采用taglib指令引入标签库
JSTL标签库
JSTL标签库包括核心标签库、格式化标签库、SQL标签库、XML标签库、函数库。本篇只介绍核心标签库、格式化标签库和函数库。核心标签库
核心标签库是JSTL最常用的标签库,引入核心标签库的语法如下:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
//由prefix=“c”可以得到jstl标签是以c:开头。
JSTL 核心标签库标签共有13个,功能上分为4类:
1.表达式控制标签:
out、set、remove、catch<c:out>:用于在JSP中显示数据
<c:out value=”${hello}” default=”默认值” escapeXml=”true”/> //default和escapeXml选择使用。Value中使用EL表达式,default用来设置默认值,若value中得不到值,则显示default中的值。escapeXml确定所得到的字符串中的字符是否应该转换成其对应的字符实体代码,默认值是true。
<c:set>:用于保存数据
<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”/> //相当于声明一个变量,给变量赋值,设置的变量默认在page范围使用。
<c:remove>:删除数据
<c:remove var=”varName” [scope=”{page|request|session|application}”/>
<c:catch>:抓取异常
<c:catch var=”msg”>
<%Integet.parseInt(“aaaa”)%>
</c:catch>
2.流程控制标签:
if、choose、when、otherwise<c:if>:用于判断
<c:if test="${v1 lt v2 }">
v1小于v2
</c:if>
<c:choose>:不能单独使用,里面至少包含一个<c:when>,<c:otherwise>
<c:choose>
<c:when test="${v1 gt v2 }">
v1大于v2<br>
</c:when>
<c:otherwise>
v1小于v2<br>
</c:otherwise>
</c:choose>
3.循环标签:
forEach、forTokens<c:forEach>:基础迭代标签,接受多种集合类型
<c:forEach items="${users }" var="user"> // items:放置集合,var:放置变量,随便起名
<tr>
<td>${user.username }</td>
<td>${user.age }</td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
<c: forTokens>:根据指定的分隔符来分隔内容并迭代输出
<c:forTokens items="${strTokens }" delims="#" var="v">
${v }<br>
</c:forTokens>
4.URL操作标签:
import、url、redirect<c:import url=""/> :引入链接
<c:url>,<c:param>:链接和传参
<c:redirect>:重定向
格式化标签库
格式化标签是用来格式化并输出文本、日期、时间和数字。引入格式化标签库语法:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><fmt:formatDate>:格式化日期
<span style="font-family:KaiTi_GB2312;font-size:18px;"><fmt:formatDate value="${today}" type="both"/> //type=“date”:设置类型,默认为date,time,或者both <fmt:formatDate value="${today}" dateStyle="long"/>//datetype:日期风格,包括default、short、medium、long、full;也可以设置timeStyle:时间格式,也包括default、short、medium、long、full <fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss" var="currentDate" scope="page"/>//pattern:模式匹配,var:放置到变量中,scope作用范围,包括page、request、session、application。</span>
<fmt:formatNumber>:格式化数字
<span style="font-family:KaiTi_GB2312;font-size:18px;"><fmt:formatNumber value="${n}" pattern="###,###,###.####"/>//pattern:加上千分位:123,234,56.00:写#代表一个数字,如果最后补0,则有几个保留几个位数 <fmt:formatNumber value="${n}" groupingUsed="false"/>//groupingUsed:true表示分组(即,有千分位符号),false不分组 <fmt:formatNumber value="${n}" maxIntegerDigits="12" minIntegerDigits="10"/>//maxIntegerDigits和minIntegerDigits:整数位,最大和最小位数 <fmt:formatNumber value="${n}" minFractionDigits="4" maxFractionDigits="6"/>//maxFractionDigits和minFractionDigits:小数位,最大和最小位数 <fmt:formatNumber value="${n}" type="currency" currencySymbol="$"/>//type:默认是number,currency货币,percent百分比;currencySymbol:设置货币的符号</span>
函数库
引入函数库的语法:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>以fn开头,用在el表达式里:${},函数格式:前缀(fn)+冒号+函数名称
${fn:length(hello)}:取得长度
${fn:split(str,"#")}:分割字符串
自定义函数
1、自定义类,方法必须为静态全局
2、提供tld描述文件,将tld放到WEB-INF下的任何地方
3、<function-signature>里面的内容写具体的类
4、在jsp中采用taglib进行引入
5、在el表达式中采用前缀+冒号+函数名的方式进行调用
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树