补充上次博客中的一些内容:
在BodyTagSupport的类中doStartTag()方法
如果返回值是EVAL_BODY_INCLUDED,将会直接输出标签体内容
如果返回值为EVAL_BODY_BUFFERED,标签体内容将会通过setBodyContent()方法进入到标签处理类中,在标签处理类中可以对其进行处理
介绍两种tld文件(xml)文件的编写方法:
1.DTD文件(具体的代码可以网上查看)
2.SCHEMA文件(在这里给出SCHEMA的代码,SCHEMA这种tld文件可以支持动态属性,而DTD是不支持动态属性的)
<?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">
</taglib>
带动态属性的自定义标签,要求实现DynamicAttribute属性
即为: <dynamic-attributes>true</dynamic-attributes>(true就表示必须执行)
所谓的动态属性说白了举个例子:<my:c name="zhang" age="30" job="IT" color="yellow"></my:c>
就是可以随意添加属性(如:上面的name,age,job等等,可以动态的打印出来)
注意:在配置tld文件的时候,tag标签里面的标签是有严格的顺序安排的,不能打乱顺序,不然会报错!
在BodyTagSupport的类中doStartTag()方法
如果返回值是EVAL_BODY_INCLUDED,将会直接输出标签体内容
如果返回值为EVAL_BODY_BUFFERED,标签体内容将会通过setBodyContent()方法进入到标签处理类中,在标签处理类中可以对其进行处理
介绍两种tld文件(xml)文件的编写方法:
1.DTD文件(具体的代码可以网上查看)
2.SCHEMA文件(在这里给出SCHEMA的代码,SCHEMA这种tld文件可以支持动态属性,而DTD是不支持动态属性的)
<?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">
</taglib>
带动态属性的自定义标签,要求实现DynamicAttribute属性
即为: <dynamic-attributes>true</dynamic-attributes>(true就表示必须执行)
所谓的动态属性说白了举个例子:<my:c name="zhang" age="30" job="IT" color="yellow"></my:c>
就是可以随意添加属性(如:上面的name,age,job等等,可以动态的打印出来)
注意:在配置tld文件的时候,tag标签里面的标签是有严格的顺序安排的,不能打乱顺序,不然会报错!