自定义标签参考2

来源:互联网 发布:王石事件始末 知乎 编辑:程序博客网 时间:2024/05/16 01:04

14 标签库描述文件(TLD文件)

mytag.tld文件:

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<taglib><!—根元素-->

       <tlibversion>0.1</tlibversion><!—标签库版本-->

       <jspversion>1.1</jspversion><!—标签库所需jsp版本-->

       <shortname></shortname><!—别名-->

       <info>…</info><!—描述信息-->

      

       <tag><!—标签元素-->

              <name>tagname</name><!—标签名-->

              <tagclass>com.mytagligs.mytaglib</tagclass><!—标签处理类-->

              <info>…</info>

              <attribute><!—参数元素-->

                     <name>attrname</name>

                     <required>true|false</required><!—此属性是否是必须的-->

                     <rtexprvalue>true|false</rtexprvalue><!—是否可以接受表达式的结果-->

                     <type>attribute的返回值类型</type>

              </attribute>

       </tag>

</taglib>

14 属性元素校验

15 标签处理类

标签处理类返回值说明:

EVAL_BODY_INCLUDE       告诉服务器正文的内容,并把这些内容送入输出流(一般由doStartTag()返回)

SKIP_BODY:告诉服务器不要处理正文内容(一般由doStartTag()返回)

EVAL_PAGE:让服务器继续执行页面(一般由doEndTag()返回)

SKIP_PAGE:让服务器不要处理剩余的页面(一般由doEndTag()返回)

EVAL_BODY_AGAIN:让服务器继续处理正文内容(只能由doAfterTag()返回)

EVAL_BODY_BUFFERD:(由doStartTag()返回)

body的标签处理类:

一个body中含有sql语句,标签处理类根据sql进行查询的例子:

public class mytag extends BodyTagSupport{

       public int doAfterBody() throws JspTagException{

              BodyContent bc=getBodyContent();

              //body的内容以字符串的格式提取出来

              String sql=bc.getString();

              //清除body

              bc.clearBody();

              try{

                     //执行sql的语句

}catch(){

      

}

//告诉服务器不要处理正文内容

return SKIP_BODY;

}

}

原创粉丝点击