自定义标签

本文介绍了如何在JSP页面中使用自定义标签移除Java代码,包括标签的创建过程、执行流程及不同类型的标签体内容。此外还讨论了如何控制标签体的执行和修改标签体的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

image

 

一:自定义标签是用于移除jsp页面中的java代码

二:移除jsp页面中的java代码步骤

        1:编写一个实现Tag接口的java类,并覆盖doStartTag方法,将jsp页面中的java代码写到这个方法中。

        2:编写标签库描述符文件,在tld文件中对自定义标签进行描述。tld文件在WEB-INF中。

三:自定义标签技术是通过给一个实现了TAG接口的类传递pagecontext,从而实现对jsp页面隐式对象的操作。

四:自定义标签执行流程

1创建标签处理器对象

2调用setPageContext方法,把页面pagecontext对象传递进来

3调用setParent,把父标签传递给标签处理器类

4执行标签,遇到开始标签调用dostart方法

5执行结束标签时,调用doEndTag方法。

6执行release方法。

四:在标签处理器类要想控制标签体是否执行,只需在dostartTag根据条件返回SKIP_BODY或者EVAL_BODY_INCLUDE

五:如果在标签处理器类要控制jsp页面是否执行,只需在doEndTag方法根据条件返回EVAL_PAGE或SKIP_PAGE.

六:如果想重复执行标签体,需要实现iterationTag接口,或者继承TagSupport类,必须实现doStartTag()方法,和doAfterBody(),因为服务器如果发现时iteration的接口,会先执行doStartTag,然后执行doAfterBody。然后根据返回值决定。

七:如果想修改标签体的内容,需要继承BodyTagSupport,或者实现BodyTag接口,BodyContent容器用于存储标签体内容的。

八:tld文件中的四种标签体类型:EMPTY,JSP,sriptless,tagdepentend.

九:简单标签接口SimpleTag,还是通过pagecontext获取jsp隐式对象,并且会把jsp标签体封装成jspfragment对象。

十:开发带有属性的标签。需要在tld中设置属性,先在标签处理器类中定义相应的get,set方法。

十一:可以开发一个防盗链的案例,在路径相关的地方应该使用pageContext.request.contextPath代表应用根目录,request.getHeader("referer")得到的referer如果不是本网站跳转过来的则为空

十二:由于web服务器只对基本数据类型自动转换,所以对于复杂的标签属性,需要传递相应的类型。

十三:两个标签之间如果想共享变量,通过一个共有的父类就可以了,因为父标签会传给子标签,比如,<c:choose>方法。

十四:打包标签库,标签处理器类,然后新建META-INF文件夹,将tld文件放在中间,然后导出jar文件ok

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值