JSP自定义标签(四)方法总结
一、自定义标签流程
1、实现标签处理类
① 实现自定义标签处理类要继承父类,常用的有:SimpleTagSupport、BodyTagSupport和TagSupport(BodyTagSupport的父类);
② SimpleTagSupport要实现doTag()方法;
③ BodyTagSupport通常要实现doStartTag(),doAfterBody()和doEndTag()这3个方法(可以部分实现);
④ 标签嵌套时,可以通过getParent()方法获取父级标签的处理类;
⑤ SimpleTagSupport可以将getJspContext()强转为PageContext,BodyTagSupport可以直接获取PageContext;
⑥ PageContext对象可以取得JSP页面的域对象,通过域对象可以实现标签处理类和JSP页面之间的传值;
⑦ BodyTagSupport的各个方法调用顺序如下:
2、.tld配置文件
实现标签处理类之后,要进行标签库的配置,配置文件放在WEB-INF文件下即可,格式之前文章介绍过,这里重点介绍两个节点
body-content节点
可选值有4个:
① tagDependent:这个之前文章一直没使用,这个标签的内容不被JSP容器解释(简单地可以认为是原样输出);
② empty:标签不能有内容;
③ JSP:支持JSP其它语法;
④ scriptLess:接受文本、EL和JSP动作,如果使用<%out.write("aaaa"); %>这一类代码就报错。
attribute节点
常用的有4个属性
① name:名称
② required:是否必填
③ rtexprvalue:前面在实现foreach标签的时候用过,全称是 Run-time Expression Value,顾名思义跟运行时有关,通过EL表达式动态注入的参数值,需要将这个值设置成true,否则报错。
④ type:属性类型
3、使用自定义标签
注意导入标签库即可