C标签是什么,为什么要使用C标签,有哪些常见的指令?

JSTL主要提供了5大类标签库:

1.核心标签库:为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等).

2.国际化(I18N)标签库:支持多种语言的引用程序.

3.SQL标签库:对访问和修改数据库提供标准化支持.

4.XML标签库:对XML文件处理和操作提供支持,包括XML节点的解析,迭代,基于XML数据的条件评估以及可扩展样式语言转换(Extensible Style Language Transformations , XSLT)的执行.

5.函数标签库:通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如: ${fn:contains(sring,substring)},其功能是判断string字符串中是否包含substring字符串.


核心标签库

核心标签库包括:out , set , remove , catch , if , choose , when和URL等.

表达式操作标签:包括:out , set , remove , catch.

out标签:

核心标签库中最为基本的标签就是,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的<%=表达式%>类似

使用格式如下:

这个标签还可以有一个体,如下:

defalut value

这表示当value属性指定的object值为null时,就会显示体中指定的值,也就是default value的值,体中也可以是jsp代码.

中各属性的说明如下:

1.value :可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}.

2.escapeXml :类型为boolean ,确定, < , > , & , ‘ , “等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出)

3.default value :可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalut value部分的值.

set标签:

set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.

Set标签使用格式如下:

1.使用value属性在一个特定的范围内指定某个变量的值,其使用格式如下:

2.当使用value属性在一个特定范围内指定某各变量的值时,也可以包括一个体,他的作用与out标签体的作用一样,即value指定的值为null时,默认使用体中指定的值,使用的格式如下:

default value

3.设置某一个特定对象属性的使用格式如下:

4.在设置某个特定对象的一个属性时,也可以使用一个体,并且指定默认的值,使用格式如下:

default value

该标签中的各属性说明如下:

1. value :该属性指定变量或者对象中某个属性的值,并且可以是一个表达式.

2. var :变量名称,value属性指定的值就保存在这个变量中.

3. scope :设定变量的有效范围,如果不设置,默认为page.

4. target :设置属性的一个对象,它必须是JavaBean或者java.util.Map对象.

5. property :设置对象中的一个属性.

remove标签

remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:

Remove标签中使用的各属性说明如下:

1.scope :设定这个需要删除的变量的所在范围.

2.var :需要删除的变量或者对象属性的名称.

如果没有scope属性,即采用默认值,就相当于调用PageContext.removeAttribute(varName)方法,如果指定了这个变量所在的范围,那么系统会调用PageContext.removeAttribute(varName,scope)方法.

catch标签

catch标签的功能和java中的try{…}catch{…}语句的功能很相似,它用于捕获嵌入到其中间语句抛出的异常,这个标签的使用格式如下:

相关操作语句

   --如果操作语句中出现异常,则catch会将异常保存在varName变量中.

流程控制标签:包括: if , choose , when , otherwise等.

if标签

这个标签作用与java中的if语句作用相同,用于判断条件语句,主要的使用格式如下

1.在体中不包括体的使用格式:

2.当体中包括体时,使用格式如下:

body content

标签中使用的属性说明:

test :判断条件的表达式,返回类型为true或者false;(也就是if的条件)

var :这个变量用于保存test条件表达式判断所返回的true或者false值

(if条件执行后所得到的boolean值将要保存在var变量中).

scope :指定var变量所在的有效范围.

choose , when , otherwise标签

这些标签相当于java中的switch , case , default条件,使用实例如下:

运行jsp页面后,输出admin

forEach迭代标签

该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,一般的使用格式如下:

Body content

这个标签使用的属性描述如下:

1.var :也就是保存在collection集合类中的对象名称.

2.items :将要迭代的集合类名.

3.varStatus :存储迭代的状态信息,可以访问到迭代自身的信息.

4.begin :如果指定了begin值,就表示从items[begin]开始迭代;如果没有指定begin值,则从集合的第一个值开始迭代.

5.end :表示迭代到集合的end位时结束,如果没有指定end值,则表示一直迭代到集合的最后一位.

6.step :指定迭代的步长.

例:

<%

String Items[] =new String[5];

Items[0]=”核心标签库”;

Items[1]=”国际化标签库”;

Items[2]=”SQL标签库”;

Items[3]=”XML标签库”;

Items[4]=”函数标签库”;

Request.setAttribute(“ItemName”,Items);

%>






的四种属性:

所在位置即索引:

总共已迭代的次数:

是否为第一个位置:

是否为最后一个位置:

代码说明:      s.index用来获取计数器的值, s.count用来获取这是第几次循环, s.first用来获取是否是循环开始的第一次, s.last用来获取是否是循环的最后一次, first和last都返回boolean值.

forTokens标签

这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,与forEach标签一样,forTokens标签也可以指定begin和end以及step属性值.

使用格式如下:

Body content

标签中的各个属性描述如下:

1.var :进行迭代的参数名称.

2.items :指定的进行标签化的字符串.

3.varSatus :每次迭代的状态信息.

4.delims :使用这个属性指定的分隔符来分隔items指定的字符串.

5.begin :开始迭代的位置.

6.end :迭代结束的位置.

7.step :迭代的步长.

例:

使用” | ”作为分隔符

 

使用” | , ”作为分隔符

 

代码说明: delims=”|,” ,即使用”|”和”,”同时作为分隔符进行使用.如果需要更多的分隔符就是使用“|,./”在引号内输出.

URL相关的标签:

URL相关的标签主要用来将其他文件包含进来,或者提供页面之间的重定位以及URL地址的生成,参数的输出等.一般包括如下几个标签.

标签:与传统JSP页面重的标签类似.

标签:进行页面的重定位.

:主要用来重写URL地址.

:一般param标签会与其他标签一起配套使用,用于参数值的传递.

标签:

该标签用于把其他今天文件包含到该文件当中,它与传统的相类似,不同的是标签只能用来包括该应用中的其他文件,而还可以包含外部站点中的静态文件,所以它的功能更加强大.使用格式如下:

Body content

标签中的属性描述如下:

url:待引用静态文件的URL地址.

context:当采用相对路径访问一个外部静态文件时,这里的context指定这个外部文件的名称.

var:当使用字符串输出时,把输出的内容存储在这个var指定的变量中.

scope:指定var参数变量的有效范围.

varReader:这个属性指定的参数变量类型是Reader,可以用于读取文件的内容.

charEncoding:引入文件所采用的字符编码.

Import标签即可以采用相对路径也可以采用绝对路径来引用本地点中的任何静态文件,还可以使用绝对路径引用外部站点中的静态文,甚至可以是ftp站点中的文件,例如:http://www.163.com” />就是引用http://www.163.com站点的主页面.

可以把引用文件中的内容赋值给var属性指定的变量,然后进行读取,也可以赋值给varReader指定的Reader类型的变量,然后进行相应的读取.

有时引入的文件在本地显示会出现乱码,这时可以通过charEncoding来指定这些内容所采用的字符集编码.

和标签:

Redirect标签用来进行页面之间的重定向,它与传统JSP程序重的标签功能相类似,param标签是与redirect一起使用的,它用来进行参数值的传递,redirect标签的使用格式如下:

在redirect标签中指定param参数的使用格式如下:

例: [通过创建c_redirect1.jsp和c_redirect2.jsp两个文件说明]

c_redirect1.jsp文件内容如下:

c_redirect2.jsp文件内容如下:

userName=

c_redirect1.jsp页面文件内容不会显示,因为直接重定向到c_redirect2.jsp,重定向c_redirect2.jsp后,页面中输出userName=admin

标签:

这个标签主要用来重写url地址,使用格式如下:

当进行参数传递时,使用格式如下:

标签中使用的属性描述如下:

value:将要处理的URL地址.

context:当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称.

var:给这个URL地址起一个标识.

Scope:规定这个var属性所指定变量的有效范围.

创建一个c_url.jsp,其源代码如下:

<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>

’>Link to other page

代码说明: url标签可以指定一个变量(var属性指定)来把url地址保存,并且可以指定这个变量的有效范围为session ,所以当需要用到这个url地址时,就可以使用session.getAttribute(varName)方法来获取这个地址,所以一般需要重复使用同一个url地址才会使用标签的功能.


PPT https://ptteng.github.io/PPT/PPT-java/java%20task2_szmc.html#/


视频

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容