`

jstl一个开源的JSP标签库

阅读更多

前言

从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生

JSTL简介

JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。但是在即将推出的JSP 2.0中是作为标准支持的。
JSTL目前的最新版本为1.02,最终发布版为1.0。JSTL包含两个部分:标签库和EL(Expression Language表达式语言)语言。标签库目前支持四种标签:
标签 URI 前缀 示例
Core http://java.sun.com/jstl/core c <c:tagname ...>
XML processing http://java.sun.com/jstl/xml x <x:tagname ...>
I18N capable formatting http://java.sun.com/jstl/fmt fmt <fmt:tagname ...>
Database access (SQL) http://java.sun.com/jstl/sql sql <sql:tagname ...>


Core支持JSP中的一些基本的操作;
XML processing支持XML文档的处理;
I18N capable formatting支持对JSP页面的国际化;
Database access (SQL)支持JSP对数据库的操作。
让我先给你介绍c标签吧.
 

1. <c:out>

:Core(核心库)

 

URI : http://java.sun.com/jsp/jstl/core

 

前缀 :

 

描述 :<c:out> 标签是一个最常用的标签,用于在   JSP   中显示数据。 它的作用是用来替代通过 JSP   置对象 out 或者 <%=%> 标签来输出对象的值。

 

语法

没有Body时的语法 

<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/> 

有Body时的语法 

<c:out value=”value” [escapeXml=”{true|false}”]> 

这里是Body部分 

</c:out>  

 

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

value 

需要显示的值

Object 

Y

Y

Y

用来定义需要求解的表达式。

escapeXml

是否转换特殊字符

boolean

Y

Y

N

true

用于指定在使用 <c:out> 标记输出诸如“ < ”、“ > ”、“ ”、“ ”和“ & ”之类的字符(在  HTML   XML  中具有特殊意义)时是否应该进行转义。如果将  escapeXml  设置为 true ,则会自动的进行编码处理。

default

缺省值

Object

Y

Y

N

当求解后的表达式为 null 或者 String 为空时将打印这个缺省值。

 

Null和错误说明

假若value为null,会显示default的值;假若没有设定default的值,则会显示一个空的字符串。

 

实例 :

------------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>

该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。

------------------------------------------------------------------------------------------------------------------------------------------

Example2

您的用户名是: <c:out value=”${user.username}” default=”guest”/> 

 

显示用户的用户名,如为空则显示guest

<c:out value="${sessionScope.username}"/> 

 

指定从session中获取username的值显示;

<c:out value="${username}" /> 

 

显示username的值,默认是从request(page)中取,如果request中没有名为username的对象则从session中取,session中没有则从application(servletContext)中取,如果没有取到任何值则不显示

------------------------------------------------------------------------------------------------------------------------------------------

 

2.  <c:set>

:Core(核心库)

 

URI : http://java.sun.com/jsp/jstl/core

 

前缀 :

 

描述 : <c:set>标 签用于为变量或JavaBean中的变量属性赋值的工作。这个标签用于在某个范围(page、request、session、application 等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。他类似 于<%request.setAttrbute("name","value");%>  

 

语法

语法1: 没有body

将value的值存储至范围为scope的varName变量之中

<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>

语法2: 有body

将body内容存储至范围为scope的varName变量之中

<c:set value="value" [scope="{page|request|session|application}"]>

 body.....

</c:set>

语法3: 将value的值存储至target对象属性中

<c:set value="value" target="target" property="propertyNmae"/>

语法4: 将body内容的数据存储至target对象属性中

<c:set target="target" property="propertyNmae">

 body....

</c:set>

Ø  Null 和 错误处理:

语法3和语法4会产生异常错误,有以下两种情况:

 .target 为null

 .target 不是java.util.Map或JavaBean对象

假若value为null时:将由存储变量改为移除变量

 .语法1: 由var和scope所定义的变量,将被移除

   .若scope已指定时,则PageContext.removeAttribute(varName,scope);

   .若scope未指定时,则PageContext.removeAttribute(varName);

 .语法3: 

   .假若target为Map时,则Map.remove(property);

   .假若target为JavaBean时,propertye指定的属性为null

注意: var和scope这两个属性不能使用表达式来表示,我们不能写成 scope="${ourScope}"或var="${a}"

 

 

属性 :

属性名

描述

类型

是否接受动态值

是否支持 EL

是否

必须

默认值

说明

value

要被存储的值 

Object

true

Y

 

被计算的表达式

var

变量名

String

false

N

 

被导出的保存了value属性计算结果的范围变量的名称

scope

范围

String

true

N

page

var的JSP范围

target

目标 对象

String

true

Y

 

要设置属性的对象。必须是JavaBean对象或java.util.Map对象

property

指定target对象属性

Object 

true

Y

 

要设置的target对象的属性的名称

 

实例 :

------------------------------------------------------------------------------------------------------------------------------------------

Example1

<c:set value="this is andy" var="oneString"/>

该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page。

------------------------------------------------------------------------------------------------------------------------------------------

Example2

<c:set target="${cust.address}" property="city" value="$"/> 

将对象cust.address的city属性值保存到变量city中。

------------------------------------------------------------------------------------------------------------------------------------------

Example3

设置不同的属性,并且指定它们的范围:

<c:set value="10000" var="maxUser" scope="application"/>

<c:set value="20" var="maxIdelTime" scope="session"/>

<c:set value="next.jsp" var="nextPage" scope="page"/>

------------------------------------------------------------------------------------------------------------------------------------------

Example4

<c:set var="bid" value="${param.bookId}"/> 

<jsp:setProperty name="bookDB" property="bookId"   value="${bid}" />

------------------------------------------------------------------------------------------------------------------------------------------

Example5

<% Foo foo = new Foo(); pageContext.setAttribute("foo", foo); %>

<c:out value="${foo.date}"/><br> <c:set target="${foo}" property="day" value="1"/> 

<c:out value="${foo.date}"/> 

------------------------------------------------------------------------------------------------------------------------------------------

 

 

分享到:
评论

相关推荐

    JSTL标签库依赖,内含Tomcat8、Tomcat10所需JSTL依赖

    Tomcat8是一个流行的开源Servlet容器,支持Java EE 7规范。而Tomcat10则是为Java EE 8和Java EE 9规范设计的,尽管这两个版本的Tomcat在功能上有所增强,但它们都要求开发者正确配置JSTL依赖,以在JSP页面中使用JSTL...

    struts1.2、jstl、jsp三种标签教程

    4. **集成实践**:将Struts1.2、JSTL和JSP结合起来,创建一个完整的Web应用,比如用户登录、注册、数据展示等功能。 5. **最佳实践**:了解如何通过JSTL和EL减少脚本代码,提高JSP页面的可维护性,以及如何优化...

    JSP中的JSTL标准标签库

    这个文件名表示的是Jakarta项目的标准标签库的一个版本,Jakarta是一个开源项目,其taglibs子项目包含了多个JSP标签库,其中"standard"标签库就是JSTL的核心部分。版本号1.1.2意味着这是一个较旧但稳定版本的JSTL...

    struts2、JSTL、Spring、JS、JSP标签大全

    2. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组用于JSP的标签库,旨在减少在页面中使用Java脚本。它包含多个核心标签集,如fmt(格式化标签)、fn(函数标签)、sql(SQL标签)、xml(XML处理...

    EL表达式&JSTL;标签库_jar包

    JSTL,全称为JavaServer Pages Standard Tag Library,是一个开源的JSP标签库,提供了丰富的标签集,用于执行常见的JSP页面操作,如迭代、条件判断、XML处理、SQL查询等。使用JSTL可以将业务逻辑和显示逻辑分离,...

    最新开发的一套jsp jstl

    2. **JSTL简介**:JSTL是由Apache软件基金会开发的开源项目,它提供了多个标签库,如core、fmt、sql、xml等,每个库都专注于特定的任务,使得JSP页面更加简洁,易于维护。 3. **JSTL核心库(core)**:提供了处理...

    免费下载JSTL两个标签库

    这对于个人学习、小型项目或者开源项目来说是一个非常友好的选择,可以降低成本,同时也降低了入门门槛。 综上所述,JSTL 1.1.2和Standard-1.1.2是Java Web开发中的重要工具,它们提供了丰富的标签和功能,使开发者...

    jstl-1.1.2标签库

    JavaServer Pages Standard Tag Library (JSTL) 是一个用于增强JSP页面功能的开源标签库,它旨在提高JSP页面的可读性和可维护性,减少在页面中直接编写Java代码的情况。JSTL 1.1.2是该库的一个版本,它包含了多种...

    JSTL XML标签库

    JavaServer Pages Standard Tag Library(JSTL)是一个用于简化JSP开发的标签库,它包含多个核心功能模块,其中之一就是处理XML的XML标签库。这个库允许开发者在JSP页面中以声明式的方式处理XML数据,极大地提高了...

    jstl标签使用的总结心得

    JSTL,全称JavaServer Pages Standard Tag Library,是一个用于JSP页面的开源标签库,由Apache Jakarta项目维护。它旨在提高JSP开发的效率,通过提供一系列预定义的标签来简化常见任务,如控制流、迭代、XML处理、...

    JSTL JSP 自定义标签 分页

    jh-plugins是一项基于JSTL的自定义标签(插件)库,致力于打造一处实现、任何项目通用的开源项目。 jh-plugins已实现标签库:分页 jh-plugins特点:高效、轻巧、简单、适用(可融合与任何B/S架构的java项目) jh-...

    JSTL类包,jspSmartUpload类包

    jspSmartUpload是一个专门用于处理文件上传的开源库,尤其适合JSP应用。它提供了简单易用的API,可以帮助开发者轻松实现文件上传功能,支持多文件上传、文件大小限制、文件类型检查等特性。 使用jspSmartUpload时,...

    jakarta.servlet.jsp.jstl-api-2.0.0.jar

    标题中的"jakarta.servlet.jsp.jstl-api-2.0.0.jar"是一个重要的Java Web开发组件,它属于JavaServer Pages(JSP)标准标签库(JSTL)的一部分,用于提供一套标准的标签来简化HTML或XML文档的生成。JSTL的主要目标是...

    JSTL标签库的介绍

    **JSTL(JavaServer Pages Standard Tag Library)**是一个用于简化JSP开发的开源标签库,由Apache Jakarta项目维护。JSTL的核心理念是提供一套标准化的标签,以减少在JSP页面中直接使用Java脚本,从而提高代码的...

    JSP核心标签库的使用,自己总结

    JSTL(JSP Standard Tag Library),即JSP标准标签库,是为了解决JSP中自定义标签的混乱情况而设计的开源库,由Apache Jakarta小组维护。JSTL提供了一套标准化的标签,使得JSP开发更加简洁、高效。 **JSTL简介** ...

    jstl标签库的介绍

    JSTL,全称JavaServer Pages Standard Tag Library,是一个开源的JSP标签库,由Apache Jakarta项目维护。这个库旨在提高JSP开发的效率和可读性,通过提供一系列预定义的标签,使得开发者可以避免使用过多的脚本和...

    介绍了JSTL标准标签库的PPT

    **JSTL(JavaServer Pages Standard Tag Library)**是一个用于JSP页面的开源标签库,旨在简化JSP开发,提供了一系列标准的、可重用的标签,以替代自定义动作和脚本语言,使得JSP代码更加简洁、易读、易维护。JSTL由...

    JSP+Servlet+jstl教程PPT版

    **自定义标签** 是JSP的一个强大特性,允许开发者创建自己的标签库,以满足特定需求。自定义标签可以封装复杂的逻辑,提供简洁的界面给页面开发者使用。它们通常以TLD(Tag Library Descriptor)文件定义,并在JSP...

Global site tag (gtag.js) - Google Analytics