java jstl标签库_Java Web(七) JSTL标签库

在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为、行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它能够获取各种对象,各种值,并且还不会抛出NullPointerException之类的错误,但是EL表达式功能还是有限,例如不能遍历集合等,因此为了完善JSP,让其完全不使用java代码,就有了jstl标签库,使用jstl和EL的配合使用,基本上可以实现所有的功能,显示数据,遍历数据等。

一、为什么使用标签?

JSP是用来显示数据的,前面我们在JSP中的HTML中嵌入java代码,与等混在一起,可读性和可维护性都很差,而且使用java脚本不便于代码重用,要实现比较复杂的显示功能,也不方便,而JSP标签和HTML代码很类似,使用JSP标签显得JSP整洁而干净,可读性好,标签能够重复使用,所以就像我们上面说的,我们慢慢意识到不足,就自然在一步步改进,从使用JSP行为,使用EL,在使用标签,都是为了一个目的,让JSP更加完全,方便,只显示数据,而不嵌入逻辑代码。这个涉及到了分层思想,后面说讲解到。

二、JSTL标签库

JSTL标签库中包括很多种类的标签core、fmt、fn方法库、sql标签库,使用JSTL标签库,需要用taglib指令导入JSTL标签库

core标签库

讲解、、、、、、 、、 、、

标签

out :将指定内容输出到浏览器,默认支持el表达式,

value:输出的值,可以为EL表达式

default:如果value属性的值不存在,会输出default属性值

excapeXml:如果为true,则会为value中的特殊字符进行转义,默认为true

06726c8f112c8c4e472c65b1a7afd3cc.png

fbfe46acd77eec38b01f6cf247519391.png

和标签

d7bcc451c3a40565a9602aa758d449aa.png

图中只介绍set标签的一种用法,其中var不能接受EL表达式,只能是字符,

target:跟var类似,但是它能够接受EL表达式,可以是一个对象,一个map等,和var进行互补

property:对象中的属性名

value:属性赋值

b10cea9e55c5f3c086ac7e07e0fd7268.png

使用哪种set标签,就看自己的需求了。

标签

if条件语句

8fdba8e1edc43f26e48a4c1b123a51c8.png

标签

424223df9f84fb69e81244c832d85472.png

标签

将自定义字符串,按照指定字符进行分割,并遍历输出

items:自定义字符串

delims:指定字符

var:遍历的变量名。

20c71c5af128b13c5fc51d3641affe29.png

标签

相当于try catch

cce714d1594e96c93abc7b203bbe1364.png

d54ea3ad6a616741d807196eacbbf6d6.png

var:捕捉后的异常对象

标签

增强的for循环,

格式:

items:需要遍历的对象

var:用于存放遍历的每一项内容,存放在page作用域,只能在循环体中使用

1、items为字符串或字符串数组

为字符串,直接输出,为字符串数组,遍历输出

dc1c6333b485acef2caf96a86256ac04.png

edc6717f68f8a1a7b25c03f620d36c46.png

2、items为list集合

347fb858ade74edf54f49db9f2fca78f.png

3、items为map集合

0b0e16b8752ad0969a65295c9539de08.png

4、普通for循环

eeafda542f14c9c14e0c816a9d2ecaa5.png

begin:从1开始

end:到10结束

step:每次加2

var:循环的变量,

标签

记得讲session的时候,如果cookie禁用了,那么只能将url进行重写才能让session继续生效,而使用的api是response.encodeURL();就是将SESSIONID当作参数带过来,而url标签的作用就是实现类似功能

  就讲解三个属性

value:要进行重写的url

var:如果写了该变量,那么就会将其重写后的url存入page作用域中,如果scope没有的话,默认就是page,否则以scope属性值为准,在作用域范围内就可以直接拿着这个变量使用了,如下面所展示的。

scope:作用域范围,默认是page,

998f47d8131ca29b8e9331f0f2df945e.png

访问后点击超链接

没有关闭cookie,所以不会将SESSIONID写入url中 。

6e6190316334ea026967d739250a3dfa.png

标签

fc8be0d1100d5cb694f7889a73911657.png

标签

类似于JSP的include行为和include指令,JSTL也提供了include功能的标签,不过import标签功能更强大,甚至可以把Internet上的网页包含进来。

576353a21661be1e0b559d4b50cf8fac.png

c584e558ca283e771e5f39f4458038af.png

fmt标签库

是一些辅助性功能标签,就讲解一个把,用的不多,等用到的时候在去详细学

标签只有一个属性,value

设置编码,

相当于Java中的request.setCharacterEncoding("");

post提交中文参数,使用来设置编码,就不会出现中文乱码了。

get提交中文参数,该标签就会失效,除非到TOMCAT的server.xml中,将URLEncoding设置为UTF-8(默认为ISO-8859-1)。

显示所有地区的数据格式

等等

fn方法库

提供一些方法,函数,例如字符串查找,截取之类。之所以不叫fn标签库而叫fn方法库,因为与core,fmt标签格式不一样,并且必须在el表达式中使用

格式:fn:methodName()的格式,比如,fn:contains()

contains方法判断是否包含指定的字符串,相当于java里String类的contains方法。

fn:contains(String string1,String string2);

containsIgnoreCase方法,判断是否包含指定字符串,忽略大小写

fn:contains(String string1,String string2)

endsWith方法,判断某字符串是否以指定的参数结尾,

fn:endWith(String string1,String string2);

startsWith方法,判断某字符串是否以指定参数开始

fn:startsWith(String string1,String string2);

escapeXml方法,是否转义字符

fn:escapeXml(source);

indexOf方法,查找字符串在另一个字符串中第一次出现的位置

fn:indexOf(String string1,String string2);

split方法,将字符串以指定参数为界分割成多个字符串形成字符串数组

。。

join方法,与split方法相反,将字符串数组以参数为界连接成字符串

length方法,取字符串,数组,集合的长度

等等

SQL标签库

JSP中直接可以操作数据库,但是大多数时候我们都不会这样用。。

XML标签库

为了方便地处理XML,

三、总结

重点讲解了一下JSTL中的core标签库,其实也就是一些控制流程的标签,没什么思想,只要会用就行了,以后忘记了就回过头来查查看,最重要的是思想,这些死东西记录一下就行了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值