c标签.docx

上传人:b****4 文档编号:12012252 上传时间:2023-04-16 格式:DOCX 页数:36 大小:30.28KB
下载 相关 举报
c标签.docx_第1页
第1页 / 共36页
c标签.docx_第2页
第2页 / 共36页
c标签.docx_第3页
第3页 / 共36页
c标签.docx_第4页
第4页 / 共36页
c标签.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

c标签.docx

《c标签.docx》由会员分享,可在线阅读,更多相关《c标签.docx(36页珍藏版)》请在冰豆网上搜索。

c标签.docx

c标签

jstlC标准标签库Ⅰ

前言

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

作者:

杨通杆(

 

JSTL简介

JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。

JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat4.x。

但是在即将推出的JSP2.0中是作为标准支持的。

JSTL目前的最新版本为1.02,最终发布版为1.0。

JSTL包含两个部分:

标签库和EL(ExpressionLanguage表达式语言)语言。

标签库目前支持四种标签:

标签

URI

前缀

示例

Core

c

tagname...>

XMLprocessing

x

tagname...>

I18Ncapableformatting

fmt

tagname...>

Databaseaccess(SQL)

sql

tagname...>

Core支持JSP中的一些基本的操作;

XMLprocessing支持XML文档的处理;

I18Ncapableformatting支持对JSP页面的国际化;

Databaseaccess(SQL)支持JSP对数据库的操作。

让我先给你介绍c标签吧.

 

1.

out>

库:

Core(核心库)

URI:

前缀:

c

描述:

out>标签是一个最常用的标签,用于在JSP中显示数据。

它的作用是用来替代通过JSP内置对象out或者<%=%>标签来输出对象的值。

语法:

没有Body时的语法

outvalue=”value”[escapeXml=”{true|false}”][default=”defaultValue”]/>

有Body时的语法

outvalue=”value”[escapeXml=”{true|false}”]>

这里是Body部分

out>

属性:

属性名

描述

类型

是否接受动态值

是否支持EL

是否

必须

默认值

说明

value

需要显示的值

Object

Y

Y

Y

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

escapeXml

是否转换特殊字符

boolean

Y

Y

N

true

用于指定在使用

out>标记输出诸如“<”、“>”、“’”、“””和“&”之类的字符(在HTML和XML中具有特殊意义)时是否应该进行转义。

如果将escapeXml设置为true,则会自动的进行编码处理。

default

缺省值

Object

Y

Y

N

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

Null和错误说明

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

实例:

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

Example1

outvalue="${sessionScope.anyValue}"default="novalue"escapeXml="false"/>

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

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

Example2

您的用户名是:

outvalue=”${user.username}”default=”guest”/>

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

outvalue="${sessionScope.username}"/>

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

outvalue="${username}"/>

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

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

2.

set>

库:

Core(核心库)

URI:

前缀:

c

描述:

set>标签用于为变量或JavaBean中的变量属性赋值的工作。

这个标签用于在某个范围(page、request、session、application等)中使用某个名字设定特定的值,或者设定某个已经存在的javabean对象的属性。

他类似于<%request.setAttrbute("name","value");%>

语法:

语法1:

没有body

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

setvalue="value"var="varName"[scope="{page|request|session|application}"]/>

语法2:

有body

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

setvalue="value"[scope="{page|request|session|application}"]>

body.....

set>

语法3:

将value的值存储至target对象属性中

setvalue="value"target="target"property="propertyNmae"/>

语法4:

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

settarget="target"property="propertyNmae">

body....

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

setvalue="thisisandy"var="oneString"/>

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

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

Example2

settarget="${cust.address}"property="city"value="$"/>

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

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

Example3

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

setvalue="10000"var="maxUser"scope="application"/>

setvalue="20"var="maxIdelTime"scope="session"/>

setvalue="next.jsp"var="nextPage"scope="page"/>

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

Example4

setvar="bid"value="${param.bookId}"/>

setPropertyname="bookDB"property="bookId"value="${bid}"/>

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

Example5

<%Foofoo=newFoo();pageContext.setAttribute("foo",foo);%>

outvalue="${foo.date}"/>

settarget="${foo}"property="day"value="1"/>

outvalue="${foo.date}"/>

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

3.

remove>

库:

Core(核心库)

URI:

前缀:

c

描述:

remove>标签用于删除存在于scope中的变量。

类似于<%session.removeAttribute(“name”)%>、

<%request.removeAttribute(“name”)%>...

语法:

removevar="varName"[scope="{page|request|session|application}"]/>

属性:

属性名

描述

类型

是否接受动态值

是否支持EL

是否

必须

默认值

说明

var

变量名

String

N

N

欲移除变量的名称

scope

范围

String

N

N

page

var变量的JSP范围;若没有指定,默认为全部查找

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

实例:

Example1

removevar="sampleValue"scope="session"/>

${sessionScope.sampleValue}

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

Example2

removevar="username"scope="session"/>

将username变量从session范围移除。

若我们不设定scope,则

remove>会移除所有范围名称为username

的数据。

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

4.

catch>

库:

Core(核心库)

URI:

前缀:

c

描述:

catch>动作用于捕获JSP元素在其体中抛出的异常,从而提供细粒度的错误控制,此异常也可以保存为一个页面作用域变量。

当错误发生

catch>和

catch>之间时,只有

catch>和

catch>之间的程序会被中止忽略,但整个网页不会被中止。

它包含一个var属性,是一个描述异常的变量,该变量可选。

若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。

语法:

catch[var="var"]>

//可能发生错误的部分

JSPelements

catch>

属性:

属性名

描述

类型

是否接受动态值

是否支持EL

是否

必须

默认值

说明

var

变量名

String

N

N

N

用来存储错误信息的变量

实例:

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

Example1

catchvar="importException">

parseDatevalue="${param.empDate}"dateStyle="short"/>

catch>

iftest="${importException!

=null}">

forwardpage="input.jsp">

paramname="msg"value="Invaliddateformat"/>

forward>

if>

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

Example2

catchvar="err">

${param.sampleSingleValue[9]==3}

catch>

${err}

当“${param.sampleSingleValue[9]==3}”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。

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

5.

if>

库:

Core(核心库)

URI:

前缀:

c

描述:

if>动作仅当所指定的表达式计算为true时才计算其体。

计算结果也可以保存为一个作用域Boolean变量。

语法:

语法1:

没有体

iftest="booleanExpression"

var="var"[scope="page|request|session|application"]/>

语法2:

有体

iftest="booleanExpression">

JSPelements

if>

属性:

属性名

描述

类型

是否接受动态值

是否支持EL

是否

必须

默认值

说明

test

测试表达式

boolean

Y

Y

如果表达式的结果为true则执行body,false则相反

var

变量名

String

N

N

用来存储test运算后的结果,即true或false

scope

变量作用域

String

N

N

page

var变量的JSP范围

实例:

iftest="${emptyparam.empDate}">

forwardpage="input.jsp">

paramname="msg"value="MissingtheEmploymentDate"/>

forward>

if>

6.

choose>

库:

Core(核心库)

URI:

前缀:

c

描述:

choose>动作用于控制嵌套

when>和

otherwise>动作的处理,它只允许第一个测试表达式计算为true的

when>动作得到处理;如果所有

when>动作的测试表达式都计算为false,则会处理一个

otherwise>动作。

choose>标签没有属性,可以被认为是父标签,

when>、

otherwise>将作为其子标签来使用。

语法:

choose>

body(

choose>

限制:

choose>的本地内容只能有:

.空白

.1或多个

when>

.0或多个

otherwise>

属性:

实例:

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

Example1

choose>

whentest="${product.onSale}">

${product.salesPrice}Onsale!

when>

otherwise>

${product.price}

otherwise>

choose>

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

Example2

choose>

whentest="${condition1}">

condition1为true

when>

whentest="${condition2}">

condition2为true

when>

otherwise>

condition1和conditon2都为false

otherwise>

说明:

在同一个

choose>中,假如所有的

when>的test都不为true时,则执行

otherwise>的本体内容。

在同一个

choose>中,假若有好几个

when>都会true时,只能有一个

when>成立。

choose>

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1