1.4 标签库描述文件(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>
1.4 属性元素校验
1.5 标签处理类
标签处理类返回值说明:
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;
}
}