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. django-xadmin设置全局变量

    class GlobalSetting(object): site_title = '自己的命名' site_footer = '底部命名'# 收缩菜单 menu_style = 'accordion ...

  2. [2019杭电多校第五场][hdu6628]permutation 1

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6628 题意为求字典序第k小的差异数组,差异数组p满足p[i]=a[i+1]-a[i]. 头铁的爆搜,因 ...

  3. HNUSTOJ-1696 简单验证码识别(模拟)

    1696: 简单验证码识别 时间限制: 2 Sec  内存限制: 128 MB 提交: 148  解决: 44 [提交][状态][讨论版] 题目描述 验证码是Web系统中一种防止暴力破解的重要手段.其 ...

  4. python学习三十九天filter() map()用法及lambda搭配使用

    python函数中的 filter() map() 前者是过滤的,后者是映射关系,需要与函数搭配使用,这时候匿名函数派上用场了,用简单的表达式就可以显示比较复杂的功能 1,python函数 filte ...

  5. centos解决Could not find a version that satisfies the requirement pip3 (from versions: none)及No matching distribution found for pip3问题

    python环境:python 3.8 报错信息: WARNING: pip is configured with locations that require TLS/SSL, however th ...

  6. Flutter 初探 -

    flutter 安装 经过许久的关注,及最近google算是真正地推行flutter时,加上掘金小册也有相应的教程,我知道自己得跟着这一波潮流学习了,不然迟早会面临着小程序的危(大家都会了就你不会), ...

  7. Java JSON入门

    一.所需jar包 jakarta commons-lang 2.5jakarta commons-beanutils 1.8.0jakarta commons-collections 3.2.1jak ...

  8. jsp页面转换时间戳

    <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> <fmt:fo ...

  9. Java开发桌面程序学习(10)——css样式表使用以及Button使用

    css 样式表使用 javafx中的css样式,与html的有些不一样,javafx中的css,是以-fx-background-color这种样子的,具体可以参考文档JavaFx css官方文档 简 ...

  10. 【转载】JDK8 特性 stream(),lambda表达式,

    Stream()表达式 虽然大部分情况下stream是容器调用Collection.stream()方法得到的,但stream和collections有以下不同: 无存储.stream不是一种数据结构 ...