关于带标签体的标签开发

开发body tag步骤: 一、开发tag类 (1)开发body tag类较为便捷的方法是集成BodyTagSupport类,该类集成了TagSupport类与BodyTag接口,位于javax.servlet.jsp.tagext包下。   具体细节: ①编写构造器(constructor):直接经过super();调用父类构造器; ②重写setAttribute()、setBodyContent()、doStartTag()、doInitBody()、doAfterBody()、doEndTag()方法。带标签体标签的类的方法后台运行顺序也是如此,上面的setBodyContent与doInitBody方法并不是必须重写。注意:Attribute与接下来标签描述文件(tld)文件中的<attribute>指向同一个属性;doStartTag,doAfterBody,doEndTag方法须要返回一个int形参数,这些int型参数是预设的,并有各自的涵义: EVAL_PAGE:继续计算JSP其它部分,通常用在doEndTag中指示是否继续计算JSP其它部份内容; SKIP_PAGE:中止计算JSP其它内容; EVAL_BODY_INCLUDE:计算标签体,通常用在doStartTag方法中 EVAL_BODY_BUFFERED:计算标签体,用在doAfterBody方法中 EVAL_BODY_AGAIN:循环计算标签体,用在doAfterBody方法中 SKIP_BODY:不计算标签体; ③编译类文件,并将编译后的class文件连同其包结构一同放在WEB-INF下的classes文件夹下 二、编写自定义标签文件 模板: <?xml version="1.0" encoding="utf8"?> <taglib> <jsp-version>1.1</jsp-version> <tlib-version>1.2</tlib-version>            <!--这个tlib挺绕口的,记住除了tld文件中的这里用tlib,其它定义军用taglib全程--> <uri>/myTag</uri> <tag> <name>bodyTag</name> <tag-class>包结构.类文件名</tag-class> <body-content>jsp</body-content> <attribute> <name>标签类中的属性,即setAttribute中的Attribute</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib> 注意这里的uri是一个重要的属性!uri是统一资源标识符,这里的uri并不表明路径,而仅是资源定位的标识,在web.xml中对应的标签声明也将定义uri,并于此处的uri相同,而jsp文件应用自定义标签也须要提早声明uri,jsp根据其中的uri找到web.xml文件中对应的tld文件,经过tld文件的uri进行验证,若相同,则取tld文件中的类路径并运行标签类。 三、web.xml中声明标签 <web-app> <taglib> <tablib-uri>/myTag</taglib-uri> <taglib-location>tld文件的相对路径</taglib-location> </taglib> 四、jsp文件中使用标签 <%@ taglib uri="/myTag" prefix="test"%> ... <test:bodyTag 属性名="...">标签体</test:bodyTag> ... 须要注意的也就这么多了,再细的细节须要本身去误了!
相关文章
相关标签/搜索