1.JSTL(JSP Standard Tag Library)

[1] JSTL简介

> 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

[2] 核心标签库

- 导入核心标签库    <%@ 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标签可以为页面中所有的相对路径,加上项目名

[3] 函数标签库

作用:函数标签库需要配合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+/

170819-关于JSTL的知识点的更多相关文章

  1. JavaWeb 学习之 JSTL

    上一篇博文我们讲解了 MVC 小案例,案例中包含了基本的增.删.改.查,对这个案例的有兴趣的伙伴可以自己动手实践一下,去复习一下或者说是学点新的知识!如果有已经看过且实践过的伙伴相信对 JSP 页面中 ...

  2. jsp与El,jstl知识点总结归纳

    jsp与El,jstl知识点总结归纳 jsp部分 一.jsp的三大指令 page ,include,taglib 1.jsp中的page指令 <% page %>-设置jsp 例如: &l ...

  3. JSTL自定义标签

    这节我们总结一下JSTL自定义标签相关内容. 1. 自定义标签简介 自定义标签主要用于移除JSP页面中的Java代码.Jsp页面主要是用来显示给前台的,如果里面有过多的java代码的话,会显得很乱,但 ...

  4. Jstl标签的使用

    一. 配置 JSTL 包括两个 JAR 文件, jstl.jar 和 standard.jar .是什么没有必要管,重在应用( 1+1 ? =2 ,我们没有必要深究,只需要知道这么用就行.). 原文引 ...

  5. java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

    一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web ...

  6. 第13天 JSTL标签、MVC设计模式、BeanUtils工具类

    第13天 JSTL标签.MVC设计模式.BeanUtils工具类 目录 1.    JSTL的核心标签库使用必须会使用    1 1.1.    c:if标签    1 1.2.    c:choos ...

  7. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  8. jstl标签库需要两个包jstl.jar和standard.jar

    要使用jstl的标签库,将文件复制到WEB-INF/lib目录下,需要在jsp源文件的首部加入如下声明语句(一般放在page语句之后) 核心(core)   <%@ taglib uri=&qu ...

  9. springmvc 项目完整示例08 前台页面以及知识点总结

    至此已经基本测试成功了,我们稍作完善,让它成为一个更加完整的项目 我们现在重新规划下逻辑 两个页面 一个登录页面 一个欢迎页面 登陆页面输入账号密码,登陆成功的话,跳转登陆成功 欢迎页面 并且,更新用 ...

随机推荐

  1. centos7安装配置jdk、tomcat

    centos7安装jdk1.8 1.新建文件夹java,上传文件jdk-8u111-linux-x64.tar.gz到java文件夹 2.解压tar包: tar -zxvf jdk-8u111-lin ...

  2. 循环结构 :do-while

    循环结构 :do-while 循环四要素: 1.初始化条件 2.循环条件 3.循环体 4.迭代条件 格式: 1.初始化条件 do{ 3.循环体 4.迭代条件 }while(2.循环条件); publi ...

  3. 什么是python??

    python 是一门非常简单易学好用,同时功能强大的编程语言,具有丰富和强大的库,开发效率特别高.它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起. pyth ...

  4. 一些WinAPI 处理 字符的函数和连接(GetACP和SetThreadLocale最重要,还有SetConsoleCP)

    虽然东西都是现成的.但是也要脑子里有个概念. // 地区与语言GetACP 取得 ANSI code page,法语XP+设置中文内核 = 936 // ShowMessage(IntToStr(Ge ...

  5. 问题 E: Jack的A+B

    问题 E: Jack的A+B 时间限制: 1 Sec  内存限制: 128 MB提交: 1996  解决: 601[提交] [状态] [命题人:jsu_admin] 题目描述 现在有整数a,b,请按西 ...

  6. Gradle打包问题Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0

    前言 使用gradle打包react native的时候,出现了如下报错,下面和大家说一下解决的具体办法 Deprecated Gradle features were used in this bu ...

  7. Failed to determine the https port for redirect

    原文:Failed to determine the https port for redirect warn: Microsoft.AspNetCore.HttpsPolicy.HttpsRedir ...

  8. 利用vsftpd在Linux构建安全的FTP服务

    最近在机房搭建Linux环境,需要用到了FTP服务,查看了许多的资料,在这里做一下笔记 一.安装 方法一,使用yum命令安装,需要能够连接外网 # yum install vsftpd 方法二,使用安 ...

  9. 【学习总结】java数据结构和算法-第三章-稀疏数组和队列

    相关链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 稀疏数组 队列 稀疏数组 稀疏数组介绍 图示 应用实例 代码实现 SparseArray.java:与二 ...

  10. C# 获得系统环境

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...