java web 有哪些标签库_Java Web之浅谈自定义标签库

自定义标签主要有两种方式:

方式1:定义一个类继承TagSupport或它的子类,重写相关方法以及自己的方法,当然也可以不继承上述类,自己写类;其次是编写tld文件,进行标签和方法的描述;在web.xml中进行注册。上篇以简要介绍过。

方式2:在WEB-INF下建一个tags文件夹,存放自己的标签;建一个jsp文件,将后缀名改为tag,文件名改为这个标签的功能名称,下面举个列子:

在WEB-INF下的tags建一个jsp命名为hello.tag,将page指令改为tag指令里面具体内容如下:

//attribute有一rtexprvalue默认值为true,表示可以用EL表达式给这个属性赋值。

//required为true表示必填的属性,其默认值为false

//type 为前面name属性的类型

${name} 

${ind.index+1}, ${s} 

接下看看在index.jsp中的引用,代码如下:

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

List ss = new ArrayList(){{

add("hello");

add("world");

add("你好");

}};

//request.setAttribute("ss", ss);

%>

HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

">

My JSP 'index.jsp' starting page

"/>

值得注意的:

当我们在index.jsp中用存储一个值时,我们的hello.tag标签中是拿不到的,因为值的范围在pageContext,可以在标签中将存储范围改为request。解析时,tag变为jsp的一部分,所以request可以。

个人对这份理解,这个自定义的hello.tag就像是html的函数!

有不正之处还请指正!Thank you!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值