JSTL介绍及使用

一、JSTL(JSP Standard Tag Library)简介

    > JSTL是JSP的标准标签库

    > JSTL为我们提供了一些常用的标签,供我们日常开发使用(if 、 if...else 、遍历 、 日期格式化)

    > 标签库
      - core :核心标签库
        - 最常用的一个标签库,也就是我们熟悉c标签。

      - fn :函数标签库
        - 函数标签库它需要结合EL表达式使用,主要定义了一些字符串操作的方法。

      - fmt :格式化标签库
        - 主要用来做日期、数字的格式化以及国际化
        - 20151019 2015/10/19 10/19/2015
        - 10000 10,000

      - sql : 数据库标签库
        - 主要用来在JSP中操作数据库的,已淘汰

      - xml : xml标签库
        - 主要用来在JSP操作解析XML文档,已淘汰

      > JSTL的使用
        使用JSTL需要先导入两个jar包
        taglibs-standard-impl-1.2.1.jar
        taglibs-standard-spec-1.2.1.jar

二、 核心标签库

    - 导入核心标签库
      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

        - 核心标签库一般使用c作为前缀,所以我们也称核心标签库为c标签。

        - c标签是我们JSTL中最常用的一个标签库,它里边封装了很多开发中常用的功能。

    c:out
      作用:向页面中输入一个内容,一般要结合EL表达式使用!
      例子:<c:out value="" default="" escapeXml=""></c:out>
        属性:
          value : 要输出内容
          default : 当内容为空时显示的默认值
          escapeXml : 是否自动转义特殊字符,默认值为true 自动转义,一般不修改该属性

    c:set
      作用:向域中设置一个属性
      例子:<c:set var="name" value="孙悟空" scope="request"></c:set>
        属性:
          var :向域中存储的属性名
          value :向域中存储的属性值
          scope :向那个域中添加属性,四个可选值(page request session application),默认是page

    c:remove
      作用:移除域中的一个属性
      例子:<c:remove var="name" scope="session"/>
        属性:
          var :要移除的属性的名字
          scope :要移除的属性所在的域,四个可选值(page request session application)
            如果不设置该属性,则默认移除四个域中指定属性。

    c:if
      作用 :相当于java中if语句
      例子:
        <c:if test="${empty param.name }">
        <h3>您没有输入name属性!</h3>
        </c:if>
        属性:
          test :接收一个boolean类型的值
          如果test的值为true则标签体执行
          否则不执行标签体

    c:choose c:when c:otherwise
      作用:相当于if...else
      例子:
        <c:choose>
        <c:when test="${param.score == 100 }">
        <h3>恭喜您考了100分!</h3>
        </c:when>
        <c:otherwise>
        <h3>恭喜你,你不及格!</h3>
        </c:otherwise>
        </c:choose>
        属性:
          when标签中的test属性:
          接收一个boolean类型的值
          如果test的值为true则标签体执行
          否则不执行标签体

    注意:在choose标签中可以指定多个when标签,但是只有一个when会执行。
      当所有的when标签都不执行时,则otherwise标签执行。

    c:when和c:otherwise不能脱离c:choose使用。

    c:forEach
      作用:可以在页面中对集合进行遍历
      例子:
        <c:forEach items="${list}" var="hero">
        ${hero} <br />
        </c:forEach>

        <c:forEach items="${map }" var="user">
        ${user.key} --- ${user.value} <br />
        </c:forEach>
        属性:
          items:要遍历的集合
          var:对集合中的对象引用的名字

    注意:在遍历Map时,返回的是一组一组的键值对结构
        我们可以通过对象.key获取键,通过对象.value获取值

      作用:可以用来遍历一组数
      例子:
        <c:forEach begin="1" end="20" var="index" step="1">
        <a href=#>${index}</a>
        </c:forEach>
        属性:
          begin :开始的位置,注意begin不能小于0
          end :结束的位置
          var :引用的名字
          step :步长,每次自增的大小

    c:url
      作用:可以创建一个完整的绝对路径
      例子:
        <c:url value="/index.jsp">
        <c:param name="name" value="孙悟空"></c:param>
        <c:param name="age" value="18"></c:param>
        </c:url>
        属性:
          value:要设置的地址,注意该地址要以/开头,否则不会加上项目名
          在url标签中可以添加c:param标签,可以自动为地址拼接上请求参数。

    c:redirect
      作用:请求的重定向
      例子:
        <c:redirect url="/index.jsp">
        <c:param name="name" value="唐僧"></c:param>
        </c:redirect>
        属性:
    url:
      重定向到目标地址,注意该地址不要自己添加项目名。

      在redirect标签中可以添加c:param标签,可以自动为地址拼接上请求参数。

  注意:redirect标签会自动为我们设置项目名,不需要我们手动设置!

设置绝对路径的三种方式:

  1.<c:set var="ctx" value="${pageContext.request.contextPath }"></c:set>
    使用这种方式,可以通过${ctx}在页面中代替项目名

  2.使用<c:url value="/index.jsp"></c:url>
    使用url标签,它会自动为绝对路径加上项目名

  3.<base href="http://${pageContext.request.serverName
}:${pageContext.request.serverPort }${pageContext.request.contextPath
}/" />
    使用base标签可以为页面中所有的相对路径,加上项目名

三、 函数标签库

  作用:函数标签库需要配合EL表达式使用,它里面的方法都是一些字符串的操作

  引入函数标签库:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

    例子:

      ${fn:contains("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串

      ${fn:containsIgnoreCase("hello","He") } <br /> 判断前一个字符串是否包含后一个字符串,不区分大小写

      ${fn:endsWith("hello","alo") }<br /> 判断前一个字符串是否以后一个字符串结尾

  <!-- 自动将特殊字符转义 -->
      ${fn:escapeXml("<html></html>") }<br /> 自动将特殊字符进行转义

  <!-- fn:join用于将一个String数组转换一个字符串,第二个参数代表的连接符 -->
      ${fn:join(strs,",") }<br /> 将一个String数组,以指定字符串拼接为一个新的字符串

      ${fn:split("a,b,c,d,e",",")[2] }<br /> 将一个字符串,以指定字符拆分为一个字符数组

      ${fn:trim(" abcd ") }<br /> 去掉字符串的前后空格

  剩下方法参照 alt+/

JSTL介绍及使用的更多相关文章

  1. JSTL介绍

    JSTL介绍 一.介绍 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标 ...

  2. java Web JSTL介绍及基本应用

    由于实际开发中我们一般不能在jsp页面上写java代码,而el表达式也做不了判断 循环之类的复杂操作,为了弥补这些缺点,所以就有了JSTL. 简介 JavaServer Pages Standard ...

  3. [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. 四种会话跟踪技术以及jstl介绍

    四种会话跟踪技术 page:代表与一个页面相关的对象和属性.一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示.这既包括 ...

  5. JSTL中的TLD配置和使用。

    一,JSTL介绍: JSTL标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一 ...

  6. JSP简单介绍

    前言 知识点 1.JSP是什么   java  server   page,javaserver端页面技术.其主要作用在server端动态生成页面, 其组成java代码和html, 2.JSP的组成 ...

  7. JSTL标签库的基本教程之核心标签库(一)

    JSTL介绍 Java Server Pages Standard Tag Libray(JSTL):JSP标准标签库,它封装了JSP应用的通用核心功能.JSTL支持通用的.结构化的任务,比如迭代,条 ...

  8. 第75节:Java的中的JSP,EL和JSTL

    第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

  9. jsp之jstl核心标签库

    JSTL核心标签库技术 1. JSTL介绍 在JSP页面中即可书写html,也可以书写Java代码,导致页面混乱,维护,修改,升级难度加大,于是国际上不同的公司在实际应用中,根据页面的需求将Java代 ...

随机推荐

  1. asp.net请求编译流程图(其实就是说asp.netd代码是如何转成中间代码IL然后交给cpu执行的)

  2. ejb 和pojo , jboss 和 tomcat

    EJB(企业JavaBeans)是普通JavaBeans的一种提升和规范,因为企业信息系统开发中需要一个可伸缩的性能和事务.安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系 ...

  3. springmvc 整合数据验证框架 jsr

    1.maven <dependency> <groupId>javax.validation</groupId> <artifactId>validat ...

  4. 修改Swing窗口风格

    String look; java:    look = "javax.swing.plaf.metal.MetalLookAndFeel"; Windows:    look = ...

  5. devexpress v14.2.3 发布

    补丁而已. New Major Features in 14.2 What's New in VCL Products 14.2 Breaking Changes To learn about bre ...

  6. No cache or cacheManager properties have been set. Authorization cache cannot be obtained.

    20235 [http-bio-8080-exec-10] INFO o.a.shiro.realm.AuthorizingRealm - No cache or cacheManager prope ...

  7. tornado+bootstrap急速搭建你自己的网站

    bootstrap既然是这么的流行又能省很多的事为什么不用他呢?再加上牛X的produced by FB的tornado简直如虎添翼了! 1. 安装配置 安装所需要的库等内容.这里没什么需要多讲的.t ...

  8. hdu 2190 悼念512汶川大地震遇难同胞——重建希望小学

    题目 这道题拿到的时候拼凑了一会,感觉挺难的,然后博客说是:递推,我觉得递推其实就是找规律. 这是别人的思路:对于n米的长度,可以是由n-1长度加1而来,对于增加的1,只有三块1*1的砖一种铺法: 还 ...

  9. [翻译] FastReport "Text" 对象中使用表达式

    文本对象的最重要的功能之一是它不仅能够显示静态文本还能显示表达式.表达式混合在正常的文本内容中,让我们看一个简单的例子,他是如何工作的.在文件对象的内容中,输入以下字符: Hello, World! ...

  10. TFS支持移动设备,微软已经走出了第一步(手机上更新、查询工作项)

    TFS支持移动设备,微软已经走出了第一步! 从现在开始,你可以在手机浏览器上打开自己的VSTS团队项目,会看大手机版的工作项界面,你可以在手机设备上更新.查询工作项. 这是原生自带的,这些移动功能马上 ...