java jstl标签库_JavaWeb中JSTL标签库

Java Web JSTL标签库

我们之前讲过使用EL表达式来简化获取对象及其属性,但是对于那些复杂的逻辑,仍然需要使用这样的脚本代码,网页中充斥太多这样的代码会导致结构不清晰,可维护性非常差,那么有没有更好的方式来实现这些功能呢?

这就是今天要讲到的JSTL标签库。

以往我们要在jsp页面中输出一个table,就需要通过for循环来输出,比如

姓名年龄

List list=(List)request.getAttribute("stus");

for(int i=0;i

Student stu=list.get(i);

%>

}

%>

这还只是一个最简单的循环,对于更复杂的嵌套循环,需要更多的类似代码。

而通过JSTL的标签,就可以使用如下的方式实现:

${stu.name}${stu.age}

这样看起来清晰多了。

我们先不用深入这个标签具体的含义,只需记住,使用标签可以简化更多的java脚本代码,下面我们系统的学习JSTL常用标签。

一JSTL简介

JSTL是官网标准的标签库,它提供了一系列的jsp标签,实现了最常用的功能,比如数组,集合的遍历,日期格式化,if-else判断等。

JSTL标签库包括core标签库,fmt标签库,fn标签库等等。

二JSTL之core标签库

core标签库是JSTL的核心库,实现了最基本的功能。在使用之前,需要在页面顶部导入标签,如下:

1,标签,用于在jsp中进行逻辑判断,可以代替脚本中的if条件判断语句,这个标签有个test属性,用于接收判断表达式

示例1:

正确

在这里,使用el表达式来计算一个布尔值,然后根据这个布尔值来作为判断的依据;

我们之前讲过,el里面可以获取某个作用域中的属性或对象,所以我们还可以这样做

示例2:

不是兰赛普的学生

在这里,通过el表达式获取了存在request域中的username属性,然后判断是否等于'lsp',不等于则输出中间那句话

2, 标签只能代替if语句,如果需要if else这样的流程怎么做。

很可惜,jstl没有这样的标签,但是有个标签组可以实现类似功能,那就是标签,具体用法如下:

是兰赛普的学生

其他

本身没有多大作用,但是它里面有两种标签可以模拟if-else:标签用于条件判断,类似if,而标签类似else。

3,是循环标签,可以代替脚本中的for循环。支持数组,List,Set,Map等结构

${stu.name}${stu.age}

这个标签有两个重要的属性,var属性用于定义每个元素的变量名,以便在循环体中使用,items属性指定数组或集合,这个一般都会从脚本中定义的变量或者某个作用域中获得。

在循环体内,就可以直接用el表达式输出具体的对象属性,其中${stu.name}表示取得stu对象的name属性,这里的stu就是forEach中var定义的变量名,类似于

for(int i=0;i

Student stu=list.get(i);

}

标签在循环数组,List,Set时没有任何区别,但是循环Map时有点不一样,Map结构是键值对的结构,在获取的时候,也需要分别获取键和值,代码如下:

${data.key}:${data.value}

这里的key和value是两个关键字,分别表示键和值。

${requestScope.map['key']}

4,标签可以循环被某些字符分割的字符串,比如"java,net,c"这个字符串,在java类中,我们可以通过String对象的split()方法来

拆分这个字符串,比如:

Stringname="lsp1,lsp2,lsp3";

String[]names=name.split(",");

for(inti=0;i

Stringnm=names[i];

System.out.println(nm);

}

这段代码中,我们通过逗号把字符串拆分了,变成了一个String数组,然后通过循环来取得每个元素。

在jsp中,可以使用标签来达到同样效果,它的用法如下:

${str}

var是定义每个循环项的变量,相当于上面的nm,items是指定被循环的数组或集合,在循环体内,就可以直接引用这个变量了。

5,标签可以定义一个作用域内的变量,也可以修改某个作用域已有的值。比如:

这样就在定义了一个变量,变量名称是count,值是34,作用域是request。

其实相当于request.setAttribute("count",34);

scope这个属性可选值有:

page,request,session,application

如:

设置之后,就可以使用el表达式获取了

${sessionScope.uname}

三JSTL之fmt标签库

fmt标签是格式化标签,比如日期,国际化等等。在使用之前,需要导入标签库,

1,标签。

在以往我们想在jsp中打印日期的时候会这样去做:

Date date=new Date();

%>

这样可以打印一个日期,但是格式不是我们想要的,然后我们会想到使用SimpleDateFormat对象来格式化输出日期。

代码如下:

Date date=new Date();

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-ddHH:ss:mm");

%>

这种方法确实可以,但是现在我们有更简单的方法实现,那就是标签,使用方法如下:

value属性就是将要格式化的日期对象,pattern属性用于指定具体格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值