JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core" %>

下面简单介绍一下这些标签的用法:

1,表达式控制标签

<c:out>

用于在JSP中显示数据。

语法1:没有本体(body)内容
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />

语法2:有本体内容
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>

<c:set>

用于保存数据。

语法1
将value的值储存至范围为scope的varName变量之中:
<c:set value="value" var="varName" [scope="{ page|request|session|application }"]/>

语法2
将本体内容的数据储存至范围为scope的varName变量之中:
<c:set var="varName" [scope="{ page|request|session|application }"]>
… 本体内容
</c:set>

语法3
将value的值储存至target对象的属性中:
c:set value="value" target="target" property="propertyName" />

语法4
将本体内容的数据储存至target对象的属性中:
<c:set target="target" property="propertyName">
… 本体内容
</c:set>

<c:remove>

用于删除数据。

语法:
<c:remove var="varName" [scope="{ page|request|session|application }"] />

<c:chtch>

2,流程控制标签

<c:if>

用途跟其他语言中的if类似。

语法1
:没有本体内容(body)
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
varName值为testCondition执行结果(布尔值)。

语法2
:有本体内容
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
本体内容</c:if>
如果表达式的结果为true,则执行本体内容,false则相反

<c:choose>、<c:when>、<c:otherwise>

这3个标签通常情况下是一起使用的,<c:choose>标签作为<c:when>和<c:otherwise>标签的父标签来使用。

语法1:
<c:choose>
         <c:when>
         表达式
         <c:otherwise>
         表达式
         <c:otherwise>
         表达式
</c:choose>

语法2:
<c:when text=”条件”>
表达式
</c:when>

语法3:
<c:otherwise>
表达式
</c:otherwise>

补充:

(1)语法1为3个标签的嵌套使用方式,<c:choose>标签只能和<c:when>标签共同使用。
(2)语法2为<c:when>标签的使用方式,该标签都条件进行判断,一般情况下和<c:choose>共同使用。
(3)<c:otherwise>不含有参数,只能跟<c:when>共同使用,并且在嵌套中只允许出现一次。

3,循环标签

<c:forEach>

跟其他语言中的forEach类似。

语法:迭代一集合对象之所有成员
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]
[begin="begin"] [end="end"] [step="step"]>
</c:forEach>

<c:forTokens>

用于浏览字符串,并根据指定的字符将字符串截取。

语法:
<c:forTokens items=”strigOfTokens” delims=””delimiters [var=”name” begin=”begin” end=”end” step=”len” varStatus=”statusName”] >

4,URL操作标签

<c:import>

该标签可以把其他静态或动态文件包含到本JSP页面。同<jsp:include>的区别为:只能包含同一个web应用中的文件。而<c:import>可以包含其他web应用中的文件,甚至是网络上的资源。

语法1:
<c:import url=”url” [context=”context”][ value=”value”][scope=”page|request|session|application”] [charEncoding=”encoding”]>

语法2:
<c:import url=”url” varReader=”name” [context=”context”][charEncoding=”encoding”]><c:redirect>

<c:url>

该标签用于动态生成一个String类型的URL,可以同<c:redirect>标签共同使用,也可以使用html的<a>标签实现超链接。

语法1:指定一个url不做修改,可以选择把该url存储在JSP不同的范围中。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]/>

语法2:给url加上指定参数及参数值,可以选择以name存储该url。
<c:url value=”value” [var=”name”][scope=”page|request|session|application”][context=”context”]>
<c:param name=”参数名” value=”值”>
</c:url>

上面说了那么多,那么为什么要用JSTL呢?它有什么优点呢?其优点如下:
1、 简化了JSP和WEB应用程序的开发。
2、 便于维护。
3、 减少甚至避免了JSP中的scriptlet代码。
4、 易于前台人员掌握,使前后台分工明确,提高团队开发效率。

有人说JSTL已经过时了,其实每种语言都有它的优点,没有啥过时不过时的,就看适合不适合了。具体选择什么就看公司要求和项目的实际情况了。

JSTL标签之核心标签的更多相关文章

  1. JSTL标签库--核心标签库

    ->JSTL的使用和EL表达式是分不开的 ->JSTL标签库分为5类 1.核心标签库(这里只介绍该标签库) 2.I18N格式化标签库 3.SQL标签库 4.XML标签库 5.函数标签库 - ...

  2. JSP标准标签库(JSTL)之核心标签(下)

      前面记录了核心标签的前几种,现在来接着记录. 七.<c:import>标签 使用<c:import>标签可以包含一个FTP服务器中不同的网页内容.语法格式: <c:i ...

  3. JSP标准标签库(JSTL)之核心标签(上)

    在myeclipse中新建web项目时,会自动为我们安装JSTL库,如下图: 核心标签是我们最常用的JSTL标签.在JSP页面中引用核心标签库的语法如下: <%@ taglib uri=&quo ...

  4. JSTL学习笔记(核心标签)

    一.JSTL标签分类: 核心标签 格式化标签 SQL标签 XML标签 JSTL函数 二.核心标签       引用方式:<%@ taglib prefix="c" uri=& ...

  5. 菜鸟学Java(三)——JSTL标签之核心标签

    JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式化.XML 操作以及数 ...

  6. jsp jstl标签库核心标签

    JSTL标签库介绍 JSTL标签库的使用时为了弥补html标签的不足,规范自定义标签的使用而诞生的.使用标签的目的就是不希望在jsp页面中出现java逻辑代码 全称:JSTL标签库分类 核心标签库使用 ...

  7. (二十七)JSP标签之核心标签

    一.诞生 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码. 二.JSTL 分类 核心标签(用得最多) ...

  8. javaweb中的标签的核心标签库的常用标签

    //标签的使用使得页面的代码更加简洁,jsp脚本的尽可能少的使用,所以熟练掌握标签对于开发是很有必要的 <%--set设置数据,默认在page域 --%> <c:set var=&q ...

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

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

随机推荐

  1. robotframework+appium,数字键盘输入问题,keycode,press keycode

    需要注意事项 appium自带的输入法应该是无法模拟控制键和基本键的,需要自行使用adb切换成搜狗或者android输入法,然后case完成之后记得切回appium输入法 appium模拟发送基本键命 ...

  2. (数据科学学习手札38)ggplot2基本图形简述

    一.简介 上一篇中我们介绍了ggplot2的基本语法规则,为了生成各种复杂的叠加图层,需要了解ggplot2中一些基本的几何图形的构造规则,本文便就常见的基础几何图形进行说明: 二.各基础图形 2.1 ...

  3. 不使用IDE,用maven命令打包war项目及出现的问题解决(最全攻略,亲测有效)

    第一次在博客园写博客,写的不好大家见谅啊!! 一.首先,在用maven打包之前,一定确认好你使用的jdk版本和maven的版本,最好就是用jdk1.8和maven3.3以上的,版本太低了容易出现一些意 ...

  4. python脚本 mongodb到postgresql

    安装 mongo模块 pip install pymongo 安装postgresql 驱动 pip install python-psycopg2  1 # -*- coding: utf-8 -* ...

  5. Jedis+Redis+spring缓存

    Redis程序使用它?Jedis 访问redis java api Redis-server & //后台运行防火墙要关闭 ts-parent的pom.xml加上jedis依赖 <dep ...

  6. geoserver中WMS服务详细说明

    官方geoserver中WMS服务中几种操作的API的详细说明地址: http://docs.geoserver.org/stable/en/user/services/wms/reference.h ...

  7. 成都Uber优步司机奖励政策(4月4日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 天津Uber优步司机奖励政策(1月11日~1月17日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. 数据爬取后台(PHP+Python)联合作战

    一. 项目声明 本项目从前端,到后台,以及分布式数据抓取,乃我一个人所写,因此项目并不太完善!在语义分析以及数据处理上并不能尽如意.但是极大的减轻了编辑的工作量! 二. 项目所用技术 本项目中前端采用 ...

  10. 一种精准monkey测试的方法

    WeTest 导读 相信大家都知道移动端应用的monkey测试吧,不知你们有没有为monkey测试的太过于随机性的特性有过困扰,至少在我们这种界面控件较少且控件位置较偏的app的使用上其测试有效性大打 ...