java中的常用的标签库有_JSTL核心标签库详解

JSP中许多自定义的标签库,已经由JCP的成员Apache定义好并已经打包。我们只需要导入该JAR包后,在页面中使用taglib指令将其导入即可使用。这套标签库称为JSTL(JSP Standard Tag libarary)即JSP标准标签库

JSTL中定义了五个标签库

核心标签库:主要用于完成基本的逻辑运算(重点)

格式化标签库:主要用于完成日期、数字的格式化显示

EL函数标签库:定义了若干个EL函数

SQL操作标签库:完成SQL操作(已经不使用,由java完成)

XML操作标签库:完成XML操作(已经不使用,由java完成)

上面是对JSTL简单了解,该博客主要写关于核心标签库,ok,先看下目录

博客目录

1、写JSTL的准备

2、核心标签库常用的标签

3、c:set

4、c:remove

5、c:catch

6、c:out

7、c:if

8、c:choose

9、c:forEach(重点)

一、写JSTL的准备

写JSTL之前需要导入两个jar包

jstl.jar

standard.jar

99e18316921109f5dd710b1070f74e09.png

将以上两个jar包导入后,可以在standard.jar下的META-INF可以找到c.tld,在c.tld中都是核心标签库的自定义标签

ea57633184b626827d349f06df054347.png

taglib指令在核心标签库中的使用

使用JSTL核心标签库,需要在页面中通过taglib指令,将标签库导入

87d22f5edcb07b01d4fd220d791fc586.png

二、核心标签库常用的标签

c:set

c:remove

c:out

c:catch

c:if

c:choose

c:forEach

三、c:set

用于进行变量定义,并将变量存放到指定域属性空间,为Bean的属性赋值,设置Map的key与value

Beantest.java

package linjie.com;

public class Beantest{

private String name;

private int age;

public Beantest() {}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

index.jsp

Insert title here

name=${requestScope.name }

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

name=${be.name }

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

map=new HashMap();

pageContext.setAttribute("map", map);

%>

map=${map }

name=${map.name }

age=${map.age }

客户浏览器显示结果

75d746bde9502f71b8fdd2b41299446f.png

四、c:remove

从域属性空间中删除指定变量

Insert title here

删除指定域空间中的指定变量

name_request=${requestScope.name }

name_page=${pageScope.name }

name_session=${sessionScope.name }

name_application=${applicationScope.name }

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

删除所有域中的属性值

name_request=${requestScope.name }

name_page=${pageScope.name }

name_session=${sessionScope.name }

name_application=${applicationScope.name }

客户浏览器显示结果

d06db2e18eb9d946cf0824299766c9c1.png

五、c:catch

获取异常信息

Insert title here

ex=${ex.message }

客户浏览器显示结果异常

910e6bad60c45f82b072d0df106aa77b.png

六、c:out

用于在页面上输出EL表达式的值

Insert title here

name1=

name2=

name3=${name }

客户浏览器显示结果

3b46787dcc31809288bda3e2cfabbf95.png

EL表达式不用就可以在页面上输出,使用< c:out/>好处就是:

可以控制是否解析HTML标签,还可以设定初始值(如下) Insert title here

name=

name=${empty name ? 'linjie' : name }

客户浏览器显示结果

eae81d0f4b97267df35114836aad1664.png

七、c:if

用于实现对于条件的判断

Insert title here

成功执行...

客户浏览器显示结果

1f2381005952a673e3b5533a9a3f68cc.png

八、c:choose

进行选择

框架

一个简单分页DEMO(当前页为第一页,只有下一页、尾页可选)

Insert title here

首页 上一页 下一页 尾页

首页 上一页 下一页 尾页

首页 上一页 下一页 尾页

客户浏览器显示结果

01603abf834277657803eec80616a970.png

九、c:forEach

用于循环遍历数组、list、set、map集合

1、简单遍历数组、map、set、list

Insert title here

-----------遍历list-------------

names=new ArrayList();

names.add("林杰");

names.add("linjie");

pageContext.setAttribute("names",names);

%>

${name }

-----------遍历set-------------

schools=new HashSet();

schools.add("浙大");

schools.add("北大");

pageContext.setAttribute("schools", schools);

%>

${school }

-----------遍历map------------

maps=new HashMap();

maps.put("name", "林杰");

maps.put("address", "浙江");

pageContext.setAttribute("maps", maps);

%>

${map }

------------遍历数组 int[]

${age }

客户浏览器显示结果

fa6d1708792047a7e58bfdae51cd6b48.png

2、begin、end、step用法

Insert title here

names=new ArrayList();

names.add("林杰");

names.add("linjie");

names.add("luxy");

names.add("king");

names.add("bbbb");

pageContext.setAttribute("names",names);

%>

${name }

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

${num }

客户浏览器显示结果

3eeac0ca4e0199f92fb86a8dfd50ecf0.png

3、高级功能(表格处理)

Insert title here

be=new ArrayList();

be.add(new Beantest("林杰",20));

be.add(new Beantest("aa",21));

be.add(new Beantest("bb",22));

be.add(new Beantest("cc",23));

pageContext.setAttribute("be", be);

%>

序号

姓名

年龄

${vs.count }

${b.name }

${b.age }

客户浏览器显示结果

5ea98e3c29ccde95e87d0ac9851c462e.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值