欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSTL标签库

程序员文章站 2023-01-30 08:35:03
1.什么是JSTL? JSTL全称为 JSP Standard Tag Library 即JSP标准标签库。它与EL表达式一样,也是为了替换掉JSP中的java代码。它提供了一系列的JSP标签,实现了java的基本功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等。JSTL可以说是EL的补 ......

1.什么是jstl?

  jstl全称为 jsp standard tag library 即jsp标准标签库。它与el表达式一样,也是为了替换掉jsp中的java代码。它提供了一系列的jsp标签,实现了java的基本功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等。jstl可以说是el的补充、扩展,经常与el一起使用。

2.常见子标签库

核心标签库: 包含 web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。(常用)
格式化标签库:用来格式化显示数据的工作,比如:对不同区域的日期格式化等。
函数标签库:用来读取已经定义的某个函数。
xml 标签库:用来访问 xml 文件的工作,这是 jstl 标签库的一个特点。(基本不用)
数据库标签库:可以做访问数据库的工作。(基本不用)

 

3.标签库导入及使用

  1.下载jar包,并导入

  

2.使用<%@ taglib %>引入标签库,设置uri和prefix的属性值。
  核心标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  格式化标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  函数标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
  xml 标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
  数据库标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
  uri和prefix属性的值可以在jstl-impl-1.2.2.jar/meta-inf中可以找到。

3.使用
  语法:<前缀:标签名 属性名=“属性值”>
  注:前缀为引入时的prefix,标签库的前缀是固定的不可自定义。

4.核心标签库

  1.<c:out>用于把数据输出到 jsp 页面中显示

  JSTL标签库

  2.<c:set>将值存储到作用域或为 javabean 中的变量属性赋值

  JSTL标签库

  3.<c:remove>删除存在于 scope 中的变量

  JSTL标签库

  4.c:if 标签:条件判断(单条件,相当于java的if或if-else)

  JSTL标签库

  补充:c:if 标签一般用于只有一个条件的情况。
  需要用到类似于if-else结构是可以设定var,如var="result",然后在另一个c:if 标签中的test对对结果进行取反,如test="${!result}


  5.c:choose 、 c:when、 c:otherwise标签:条件判断(多条件,相当于if-else-if)
  例:

   

 1 <c:choose>
 2         <c:when test="${score >=80 }">
 3             优秀
 4         </c:when>
 5         <c:when test="${score >=70 }">
 6             良好
 7         </c:when>
 8         <c:when test="${score >=60 }">
 9             及格
10         </c:when>
11         <c:otherwise>
12             不及格        
13         </c:otherwise>
14     </c:choose>

使用时需要注意以下几点:
  1.c:when必须在c:otherwise之前出现
  2.c:otherwise只能出现一次
  3.c:when和c:when和c:otherwise之前不允许出现其他任何字符

 

6.c:foreach标签:循环,相当于java的迭代器

JSTL标签库

补充:
  begin & end:只能为数字,当没有items属性时,var的值从begin数字循环到end数字;当有items属性时,begin & end就表示下标。
  varstatus的属性:
  first(判断当前循环体是否为第一个)
  last(判断当前循环体是否为最后一个)
  count(当前循环次数)
  index(当前循环体的下标)
  varstatus用法如:
  varstatus="status"
  ${status.first} ${status.last} ${status.count} ${status.index}

5.格式化标签库

  1.fmt:formatdate:将一个时间对象按指定格式输出
    格式:<fmt:formatdate value=“${ date }”pattern=“yyyy年mm月dd日”/>
  2.fmt:parsedate:将一个字符串按指定格式解析成时间对象
    格式:<fmt:parsedate value="${ds}" var="date" pattern="yyyy/mm/dd hh:mm:ss">

  JSTL标签库

6.函数标签库

函数标签库,el函数库、fn标签库。需要在el表达式中使用。
如:${fn:length(xxx) }:会到作用域中去找xxx属性,然后输出它的长度,没找到就为0
fn标签库中的标签与java中的string对象方法基本相同。