JSTL--简单标签
自定义标签
1. 创建一个标签处理器类,实现javax.servlet.jsp.tagext.SimpleTag接口。
2. 在WEB-INF文件夹下新建一个.tld(标签库描述文件)为扩展名的xml文件。
tld文件示例:
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>my jsp tag library</description> <display-name>MJSTL core</display-name> <tlib-version>1.1</tlib-version> <!-- 建议在JSP页面上使用的标签的前缀 --> <short-name>myjst</short-name>
<!-- 作为tld文件的id,用来唯一标识当前的tld文件,多个tld文件的uri不能重复通过JSP页面的taglib标签的uri属性来引用--> <uri>http://javaweb.test.ldj.com</uri> <!-- 描述自定义的MySimpleTag标签 --> <tag> <!-- 标签的名字:在JSP页面上使用标签的名字 --> <name>hello</name> <!-- 标签所在类的全类名 --> <tag-class>jstl.MySimpleTag</tag-class> <!-- 标签体的类型 --> <body-content>empty</body-content> </tag> </taglib>
3. 在JSP页面中导入自定义的标签库:<%@ taglib uri="http://javaweb.test.ldj.com" prefix="myjst" %>。
4. 在JSP页面中使用自定义的标签:<myjst:hello/>。
javax.servlet.jsp.tagext.SimpleTag.setJspContext() 一定会被JSP引擎调用,用于向当前标签处理器类传入当前JSP页面的PageContext(JSP内置的9大对象之一,凭其可获取到其它8个对象)。
private PageContext pageContext; @Override public void setJspContext(JspContext arg0) { System.out.println(arg0 instanceof PageContext); this.pageContext = (PageContext)arg0; }
带属性的自定义标签
1.先在标签处理器类中定义setter方法,建议把所有的属性类型都定义为String类型。
2.在tld文件中的tag节点下添加属性描述:
<!-- 描述当前标签的属性 --> <attribute> <!-- 属性名,需和标签处理器类的setter方法定义的属性相同--> <name>value</name> <!-- 该属性是否是必须的 --> <required>true</required> <!-- rtexprvalue: runtime expression value, 当前属性是否可以接受运行时表达式的动态值 --> <rtexprvalue>true</rtexprvalue> </attribute>
3.在页面中使用属性,属性名同tld文件中定义的名字。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了