转自:http://blog.csdn.net/liushuijinger/article/details/9143793

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

目前也有不少人在用JSTL,今天我们就一起学习一下JSTL的核心标签。

在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已经过时了,其实每种语言都有它的优点,没有啥过时不过时的,就看适合不适合了。具体选择什么就看公司要求和项目的实际情况了。

java jstl标签的更多相关文章

  1. Java jstl标签使用总结

    1.在jsp文件中引用 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&g ...

  2. Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  3. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库

    JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...

  4. Java Web(七) JSTL标签库

    在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为.行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它 ...

  5. Vue.js——循环(Java、JSTL标签库、数据库)

    一.Vue.js循环 Vue.js循环要使用 v-for 指令. v-for 指令需要以 student in StudentList 形式的特殊语法使用, StudentList 是源数据数组并且s ...

  6. jsp不解析el表达式,不识别jstl标签,找不到http://java.sun.com/jsp/jstl/core

    问题描述: jsp页面中el表达式,例如:${pageContext.request.contextPath},原样呈现,未被解析. 解决方案: 为jsp页添加page指令如下: <%@ pag ...

  7. Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)

    一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...

  8. Java学习——JSTL标签与EL表达式之间的微妙关系

    原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...

  9. java基础开发—jstl标签库

    在DRP项目中.接触到了JSTL标签库. 在未使用Jstl之前,我们使用JSP脚本实现一些声明或是表达式任务,做一些业务相关操作时,须要在页面中嵌入大量的java代码.在DRP项目开发前期.使用jsp ...

随机推荐

  1. Java 集合框架_中

    Set接口 特点: [1]Set接口表示一个唯一.无序的容器(和添加顺序无关) Set接口常用实现类有 HashSet [1]HashSet是Set接口的实现类,底层数据结构是哈希表. [2]Hash ...

  2. [tensorflow] tf2.0 简单例子

    tf2.0笔记 感觉,都统一了,pytorch tensorflow mxnet,大家都差不多了 gan例子笔记 import tensorflow as tf from tensorflow.ker ...

  3. 2018.5.9 Oracle数据库查询命令

    0.查询所有数据(最简单,但是时间很久) select * from emp; Result: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- - ...

  4. JavaScript -- 内置对象字符串

    charAt和charCodeAt charAt语法: stringObject.charAt(index) 功能: 返回stringObject中index位置的字符. charCodeAt语法 s ...

  5. iOS开发之WIFI,3G/4G两种网络同时使用技巧

    最近遇到一个比较奇葩的需求:App与硬件通过WiFi LAN通信, 同时App需要与服务器通过3G/4G WAN通信,如下图: 众所周知,手机同时打开WiFi和3G时候,会优先走WiFi.这个该如何实 ...

  6. iOS中的数据存储方式_Preference(NSUserDefaults)

    NSUserDefaults适合存储轻量级的本地数据,项目中,我会把一些简单的数据密码.网址.登陆状态BOOL.整型/浮点型数据等和用户有关的数据用它存储.但是它不能存储自定义的对象! 实例化一个 N ...

  7. Seek and Destroy-freecodecamp算法题目

    Seek and Destroy(摧毁数组) 要求 实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值. 思路 利用for循环将输入arguments中除第一项待 ...

  8. 学习笔记(五): Feature Crosses

    目录 Feature Crosses Encoding Nonlinearity Kinds of feature crosses Glossay Crossing One-Hot Vectors P ...

  9. NOIP模拟赛 数列

    Problem 2 数列(seq.cpp/c/pas) [题目描述] a[1]=a[2]=a[3]=1 a[x]=a[x-3]+a[x-1]  (x>3) 求a数列的第n项对1000000007 ...

  10. 日志切割logrotate和定时任务crontab详解

    1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...