JSTL标签库

北城余情 提交于 2020-04-05 20:57:27

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 页面中显示

  

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

  

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

  

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

  

  补充: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的迭代器

补充:
  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">

  

6.函数标签库

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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!