首页 > 代码库 > Jsp自定义Tag
Jsp自定义Tag
自定义Tag标签,继承SimpleTagSupport实现,位于javax.servlet.jsp.tagext
Maven dependency
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version></dependency>
实际场景很少使用,主要学习java实现自定义标签的思想
执行自定义标签中内容代码位于doTag方法内
而SimpleTageSupport类具有一些方法:
JspContext getJspContext()
JspContext通过方法 getOut(),获得JspWriter。JspWriter的print()方法可以将内容写入到Jsp页面中。
JspContext通过getAttribute() setAttribute()设置获取JspTag作用域或其他作用域的Attribute值。
JspTag getParent(),可以通过该方法获得父标签内容。通过获取父标签和子标签内容可以组合出各种复杂功能的Jsp Tag。如If While 的分支选择Tag。
JspFragment getJspBody(), 获得标签体。JspFragment.invoke(Writer writer), 将标签内容写入Writer。如果writer为null, 标签体内容如普通jsp页面输出。
需先定义tld文件
<?xml version="1.0" encoding="GBK" ?> <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 web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.0</tlib-version> <short-name>mytaglib</short-name> <uri>http://domain/mytaglib</uri> <tag> <name>helloWorld</name> <tag-class>mypackage.HelloWorldTag</tag-class> <body-content>empty</body-content> <attribute> <name>content</name> <required>true</required> <fragment>true</fragment> </attribute> </tag> <tag> <name>iterator</name> <tag-class>mypackage.iteratorTag</tag-class> <body-content>scriptless</body-content> <attribute> <name>collection</name> <required>true</required> <fragment>true</fragment> </attribute> <attribute> <name>item</name> <required>true</required> <fragment>true</fragment> </attribute> </tag>
是用前使用TagLib指令导入
<%@ taglib uri="WEB-INF/tlds/mytag.tld" prefix="mytag" %>
Jsp自定义Tag
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。