- 浏览: 50525 次
- 性别:
- 来自: 合肥
文章分类
最新评论
一、引入包:
jstl.jar (1.1) , standard.jar包
二、在jsp页面引入标签库
1)打开standard.jar包/META-INF/c.tld
<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
2) 在jsp页面引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3)Jstl Core标签库,共14个,分为4类:
多用核心标签:<c:out> <c:set> <c:remove> <c:catch>
条件控制标签:<c:if> <c:choose> <c:when> <c:otherwise>
循环控制标签: <c:forEach> <c:forToken>
URL相关标签: <c:import> <c:url> <c:redirect> <c:param>
=======================================
用于显示的<c:out>标签
<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表9.3所示:
表9.3 <c:out>标签属性和说明
属性 描述
属性
描述
value
输出到页面的数据,可以是EL表达式或常量(必须)
default
当value为null时显示的数据(可选)
escapeXml
当设置为true时会主动更换特殊字符,比如“<,>,&”(可选,默认为true)
在JSTL1.0的时候,在页面显示数据必须使用<c:out>来进行。然而,在JSTL1.1中,由于JSP2.0规范已经默认支持了EL表达式,因此可以直接在JSP页面使用表达式。下面看一个示例。
它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>
有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” >
这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>
注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码
测试用例:
<h2>普通变量</h2>
jsp脚本:<%=request.getAttribute("hello") %><br/>
el表达式: ${hello}<br/>
jstl标签:<c:out value="${hello }" /><br/>
<h2>html变量</h2>
jsp脚本:<%=request.getAttribute("xm") %><br/>
el表达式: ${xm}<br/>
jstl标签:<c:out value="${xm }" /><br/>
jstl标签(escapeXml="true" ,默认是true):<c:out value="${xm }" escapeXml="true" /><br/>
jstl标签(escapeXml="false"):<c:out value="${xm }" escapeXml="false" /><br/>
jstl标签(default):<c:out value="${xm1 }" default="China" /><br/>
jstl标签(default 2):<c:out value="${xm1 }">Defalut China</c:out>
输出结果:
普通变量
jsp脚本:hello world
el表达式: hello world
jstl标签:hello world
html变量
jsp脚本:Xiamen
el表达式: Xiamen
jstl标签:<font color='red'>Xiamen</font>
jstl标签(escapeXml="true" ,默认是true):<font color='red'>Xiamen</font>
jstl标签(escapeXml="false"):Xiamen
jstl标签(default):China
jstl标签(default 2):Defalut China
===================================
用于赋值的<c:set>标签
<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表9.4所示:
表9.4 <c:set>标签属性和说明
属性
描述
value
值的信息,可以是EL表达式或常量
target
被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)
property
JavaBean实例的变量属性名称(可选)
var
被赋值的变量名(可选)
scope
变量的作用范围,若没有指定,默认为page(可选)
当不存在value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:
<c:set value="this is andy" var="oneString"/>
${oneString} <br>
该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
9.3.3 用于删除的<c:remove>标签
<c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表9.5所示:
表9.5 <c:remove>标签属性和说明
属性
描述
var
需要被删除的变量名
scope
变量的作用范围,若没有指定,默认为全部查找(可选)
下面看一个示例:
<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>
该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。
测试用例:
<c:set var="username" value="Tom" scope="page"/>
username:${username }<br/>
<c:remove var="username" scope="page"/>
username:${username }
=========================================
用于判断的<c:if>标签
该示例将判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则显示“It is 12 ”。判断结果被保存在page范围中的“visits”变量中。
<c:if>标签用于简单的条件语句。它的属性和描述如表9.6所示:
表9.6 <c:if>标签属性和说明
属性
描述
test
需要判断的条件
var
保存判断结果true或false的变量名,该变量可供之后的工作使用(可选)
scope
变量的作用范围,若没有指定,默认为保存于page范围中的变量(可选)
下面看一个示例:
<c:if test="${paramValues.sampleValue[2] == 12}" var="visits">
It is 12
</c:if><br>
${visits} <br>
测试用例:
<c:if test="${v1 < v2}" var="flag">
v1小于v2<br/> flag= ${flag }<br/>
</c:if>
<c:if test="${empty value1}" >
value1 是空字符串<br/>
</c:if>
<c:if test="${empty value2}" >
value2 是空集合<br/>
</c:if>
<c:if test="${empty value3}" >
value3 是null<br/>
</c:if>
======================================
用于复杂判断的<c:choose>、<c:when>、<c:otherwise>标签
这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。
<c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
<c:otherwise>标签没有属性,它等价于“else”语句。
下面看一个复杂条件语句的示例。
测试用例:
<c:choose>
<c:when test="${v1 == 1 }">
v1 == 1<br/>
</c:when>
<c:when test="${v1 == 2 }">
v1 == 2<br/>
</c:when>
<c:otherwise>
v1 == 3<br/>
</c:otherwise>
</c:choose>
jstl.jar (1.1) , standard.jar包
二、在jsp页面引入标签库
1)打开standard.jar包/META-INF/c.tld
<description>JSTL 1.1 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
2) 在jsp页面引入标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3)Jstl Core标签库,共14个,分为4类:
多用核心标签:<c:out> <c:set> <c:remove> <c:catch>
条件控制标签:<c:if> <c:choose> <c:when> <c:otherwise>
循环控制标签: <c:forEach> <c:forToken>
URL相关标签: <c:import> <c:url> <c:redirect> <c:param>
=======================================
用于显示的<c:out>标签
<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表9.3所示:
表9.3 <c:out>标签属性和说明
属性 描述
属性
描述
value
输出到页面的数据,可以是EL表达式或常量(必须)
default
当value为null时显示的数据(可选)
escapeXml
当设置为true时会主动更换特殊字符,比如“<,>,&”(可选,默认为true)
在JSTL1.0的时候,在页面显示数据必须使用<c:out>来进行。然而,在JSTL1.1中,由于JSP2.0规范已经默认支持了EL表达式,因此可以直接在JSP页面使用表达式。下面看一个示例。
它是一个输出的标签,负责把计算出的结果输出到jspwriter,就跟调用out.println()基本一样。没有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>
有BODY的时候,使用下面的语法:
<c:out value=”value” [escapeXml]=”{true|false}” >
这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>
注意,escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释,见红色部分代码
测试用例:
<h2>普通变量</h2>
jsp脚本:<%=request.getAttribute("hello") %><br/>
el表达式: ${hello}<br/>
jstl标签:<c:out value="${hello }" /><br/>
<h2>html变量</h2>
jsp脚本:<%=request.getAttribute("xm") %><br/>
el表达式: ${xm}<br/>
jstl标签:<c:out value="${xm }" /><br/>
jstl标签(escapeXml="true" ,默认是true):<c:out value="${xm }" escapeXml="true" /><br/>
jstl标签(escapeXml="false"):<c:out value="${xm }" escapeXml="false" /><br/>
jstl标签(default):<c:out value="${xm1 }" default="China" /><br/>
jstl标签(default 2):<c:out value="${xm1 }">Defalut China</c:out>
输出结果:
普通变量
jsp脚本:hello world
el表达式: hello world
jstl标签:hello world
html变量
jsp脚本:Xiamen
el表达式: Xiamen
jstl标签:<font color='red'>Xiamen</font>
jstl标签(escapeXml="true" ,默认是true):<font color='red'>Xiamen</font>
jstl标签(escapeXml="false"):Xiamen
jstl标签(default):China
jstl标签(default 2):Defalut China
===================================
用于赋值的<c:set>标签
<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表9.4所示:
表9.4 <c:set>标签属性和说明
属性
描述
value
值的信息,可以是EL表达式或常量
target
被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)
property
JavaBean实例的变量属性名称(可选)
var
被赋值的变量名(可选)
scope
变量的作用范围,若没有指定,默认为page(可选)
当不存在value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:
<c:set value="this is andy" var="oneString"/>
${oneString} <br>
该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。
9.3.3 用于删除的<c:remove>标签
<c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表9.5所示:
表9.5 <c:remove>标签属性和说明
属性
描述
var
需要被删除的变量名
scope
变量的作用范围,若没有指定,默认为全部查找(可选)
下面看一个示例:
<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>
该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。
测试用例:
<c:set var="username" value="Tom" scope="page"/>
username:${username }<br/>
<c:remove var="username" scope="page"/>
username:${username }
=========================================
用于判断的<c:if>标签
该示例将判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则显示“It is 12 ”。判断结果被保存在page范围中的“visits”变量中。
<c:if>标签用于简单的条件语句。它的属性和描述如表9.6所示:
表9.6 <c:if>标签属性和说明
属性
描述
test
需要判断的条件
var
保存判断结果true或false的变量名,该变量可供之后的工作使用(可选)
scope
变量的作用范围,若没有指定,默认为保存于page范围中的变量(可选)
下面看一个示例:
<c:if test="${paramValues.sampleValue[2] == 12}" var="visits">
It is 12
</c:if><br>
${visits} <br>
测试用例:
<c:if test="${v1 < v2}" var="flag">
v1小于v2<br/> flag= ${flag }<br/>
</c:if>
<c:if test="${empty value1}" >
value1 是空字符串<br/>
</c:if>
<c:if test="${empty value2}" >
value2 是空集合<br/>
</c:if>
<c:if test="${empty value3}" >
value3 是null<br/>
</c:if>
======================================
用于复杂判断的<c:choose>、<c:when>、<c:otherwise>标签
这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。
<c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
<c:otherwise>标签没有属性,它等价于“else”语句。
下面看一个复杂条件语句的示例。
测试用例:
<c:choose>
<c:when test="${v1 == 1 }">
v1 == 1<br/>
</c:when>
<c:when test="${v1 == 2 }">
v1 == 2<br/>
</c:when>
<c:otherwise>
v1 == 3<br/>
</c:otherwise>
</c:choose>
发表评论
-
oracle 笔记下
2011-07-06 18:17 790建立表空间:建立表空 ... -
oracle 学习笔记上
2011-06-20 19:00 10861.oracle 安装完成后,会 ... -
jquery 对select中的option操作
2011-06-15 16:28 6264Jquery的功能很强大,下面 ... -
MySQL实现分页技术
2011-06-09 08:29 906先给出servlet package com.ourchr.s ... -
servlet cookie jsp
2011-05-19 18:21 915首先是登陆界面,其中有mes_zh等国际化 这个不重要 < ... -
java学习日记(线程)
2011-05-18 18:38 815java学习日记(线程) 一 ... -
Java Servlet和JSP 处理Cookie
2011-05-18 13:28 19549.1 Cookie概述 Cookie是服务器发送给浏 ... -
简单的qq实现
2011-05-17 18:42 742很好用 简洁 -
简单的日历控件
2011-05-17 18:40 800package Exception; import java ... -
完整的JDBC 简单列子
2011-05-17 18:38 690package dao; import java.sql.Co ... -
jsp jstl 标签3
2011-05-13 17:38 698<c:import> 作用:导入一个url的资源, ... -
jsp jstl 标签2
2011-05-13 17:38 742c:forEach 用于循环的<c:forEach&g ... -
js 中this用发小结
2011-03-09 09:19 703js中this的总结 在面向对 ... -
js 正则表达式
2011-02-24 15:12 632js正则表达式 exec 方法 用正则表达式模式在字符串中运 ... -
WEB innerHTML中div 和span
2011-02-24 13:58 1243使用innerHTML属性来控制DIV和SPAN<$lo ... -
Myeclipse 快捷键打总结
2011-01-08 13:01 727xml、jsp、jsf、js等等,我们没有必要全部都去自动校验 ... -
java基础知识
2011-01-07 17:35 708 -
java文件夹之间的复制
2011-01-06 14:58 656package Exception; import java. ...
相关推荐
JSP JSTL 标签库详解 JSTL(JavaServer Pages Standard Tag Library)是 Java EE 应用程序中的一种标签库,用于简化 JSP 页面的开发。JSTL 标签库提供了一组丰富的标签,用于处理各种常见的 Web 开发任务。本文将对...
JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core、format、xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV 和 PermittedTaglibsTLV)组成。core 标记库提供了定制操作,通过限制了作用域的变量管理数据...
**正文** JSTL(JavaServer Pages Standard Tag Library)是Java Web开发中一个重要的标签库,主要用于简化...通过学习和实践这些内容,开发者可以更加熟练地在JSP页面中运用JSTL标签,提升Web应用的开发质量和效率。
通过将业务逻辑从Java脚本let中移除并替换为JSTL标签,可以使JSP页面更加专注于视图的呈现,遵循MVC设计模式,有助于提高代码的结构和质量。同时,JSTL标签的语义比原始的JSP动作更清晰,更易于理解和调试。因此,...
### JSTL(JSP标准标签库):增强JSP页面功能的关键技术 JSTL,全称为JSP Standard ...通过上述知识点的解析,我们可以看到JSTL标签库极大地提升了JSP页面的开发效率和可维护性,是Java Web开发中不可或缺的一部分。
JSTL标签库通常包括Core、XML、Format、I18N和Function等多个部分,它们分别对应不同的功能。Core库是最常用的部分,包含了处理页面流程控制、数据输出等基本操作的标签。 要使用JSTL,首先我们需要在项目的类路径...
- **提高性能**:JSTL标签在服务器端被翻译成Java代码,执行效率相对较高。 **4. 安装与配置JSTL:** 下载`jakarta-taglibs_2019`或其他版本的JSTL库后,将其解压,将`jstl.jar`和`standard.jar`添加到项目的类路径...
JSTL 标签库(JavaServer Pages Standard Tag Library)是一种在 JSP 页面中使用的标签库,用于简化 JSP 页面的开发。JSTL 标签库提供了一些常用的标签,例如 foreach、if、choose 等,可以用于循环输出数据、条件...
3. 使用JSTL标签:现在可以在JSP页面中使用JSTL标签,如`<c:forEach>`进行迭代,`<c:if>`进行条件判断,`<fmt:formatDate>`格式化日期等。 总之,JSTL是提升JSP页面编写效率的重要工具,而依赖注入则是现代Java应用...
3. **使用JSTL标签**:在JSP页面中,通过以下方式引入JSTL库: ```jsp <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> ...
**JSP的JSTL标签和EL表达式详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码来生成动态内容。然而,传统的JSP脚本语法可能导致代码混乱且不易维护。为了解决这个问题...
2. **工具友好**:大多数HTML编辑工具无法很好地处理JSP scriptlet,而JSTL标签与HTML标签相似,可以被这些工具识别和处理,增强了开发效率。 3. **模块化**:JSTL标签库分为多个模块,如core、fmt、sql等,每个...
本文档将详细介绍JSTL标签的使用方法,帮助开发者更好地理解和应用。 JSTL主要分为五个核心部分: 1. **Core(核心标签库)**:提供基本的控制结构,如条件语句、循环、跳转等。 - `<c:if>`:用于执行条件判断。 ...
这个“JAVAEE-1-jstl”压缩包文件可能包含了创建和使用自定义JSTL标签的完整示例,包括源代码、TLD文件以及相应的JSP页面。通过学习和分析这些文件,开发者可以深入理解自定义JSTL标签的工作原理,并将其应用到自己...
1. **jstl.jar**: 这个文件包含了JSTL的核心库,提供了大部分的JSTL标签实现,如条件判断、循环、URL操作、国际化等。比如`<c:if>`用于条件判断,`<c:forEach>`用于遍历集合,`<c:url>`和`<c:param>`用于构建动态URL...
JSTL标签库包括核心标签、XML处理标签、SQL标签和函数标签等几大类,覆盖了网页开发中的常见操作。 在JSP页面中使用JSTL,首先需要将对应的jar包添加到项目的类路径(classpath)中。这里提供的“jstl标签jar包”...
将"jakarta.servlet.jsp.jstl-api-2.0.0.jar"添加到Tomcat的类路径中,可以确保JSP页面能够识别并使用JSTL标签。 JSTL主要包含以下几个核心标签库: 1. **Core Library**(c:):提供了基本的控制流和数据处理功能...
### JSP网页编程JSTL标签详解 #### JSTL概览 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它提供了一系列预定义的...
### EL表达式与JSP JSTL标签库的总结 #### 一、EL表达式的使用方法及示例 ##### 1. EL隐含对象 在Java Server Pages (JSP) 技术中,EL(Expression Language)表达式是一种用于简化JSP页面中Java代码编写的工具。...
JSTL(JavaServer Pages Standard Tag Library)是Java EE平台的一部分,提供了一系列用于处理常见JSP任务的标签库,如迭代、条件判断、XML处理等,减少了对脚本语言的依赖,使得JSP页面更加清晰、可维护。JSTL的...