JSTL

原创 2016年05月31日 21:43:29

简介

    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表达式中采用前缀+冒号+函数名的方式进行调用



版权声明:本文为博主原创文章,未经博主允许不得转载。

JSTL的学习之一:Eclipse+Tomcat环境下配置JSTL

JSTL--JSP Standard Tag Library(JSP标准标签库),由JCP()
  • chenshuo8725
  • chenshuo8725
  • 2014年04月12日 11:12
  • 8766

在IDEA中加载 JSTL标签库

这两天在 IntelliJ IDEA 中 使用 C标签(JSTL)的时候发现引入进来有问题,不但没提示而且还有红色警告,所以经过一番谷歌的查找之后解决了这个问题,发现是没有导入tld文件的问题。 ...
  • lm825118573
  • lm825118573
  • 2014年01月14日 11:35
  • 1444

jsp页面中jstl标签详解

JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的。把常用的内容,放在这里备份一份,随用随查。尽量做到不用查,就可以随手就可以写出来。这算是Java程序员的基本功吧,一定要扎实。   ...
  • justjackwang
  • justjackwang
  • 2013年04月15日 16:31
  • 67568

jstl-1.2.jar和standard-1.1.2

  • 2018年01月13日 20:22
  • 704KB
  • 下载

ssh整合jar包_struts2.3.24_hibernate5.2.12_spring5.0.2_包含jstl和standard_共41个

  • 2018年01月11日 10:18
  • 20.77MB
  • 下载

jstl+standard包

  • 2015年02月03日 22:42
  • 694KB
  • 下载

jstl、el详解

  • 2014年09月10日 17:22
  • 481KB
  • 下载

jstl标签jar包,含standard.jar

  • 2014年10月14日 13:22
  • 316KB
  • 下载

jstl.jar+jakarta

  • 2013年06月17日 11:10
  • 950KB
  • 下载

(java常用工具jar组合)c3p0-0.9.1.2.bin+jackson 2.82+JSTL-jar+junit4.4.jar+gson-2.5.jar

  • 2016年11月30日 22:25
  • 4.35MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSTL
举报原因:
原因补充:

(最多只允许输入30个字)