码迷,mamicode.com
首页 > Web开发 > 详细

Jsp自定义Tag

时间:2015-01-25 22:14:10      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

自定义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

标签:

原文地址:http://www.cnblogs.com/doubleten/p/4249002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!