JSTL自定义标签SimpleTagSupport
JSTL自定义标签通常来说有两种方式
- 在JSP2.0为我们提供了SimpleTagSupport,是一种更简单的新型模型(比较简单)
- 在JSP2.0 以前我们要开发自定义的标签一般来说我们会使用传统模型的(比较复杂)
创建一个自定义的标签的步骤
- 编写一个扩展类继承SimpleTagSupport
- 重写doTag()方法
- 编写TLD文件
- 部署TLD文件
经过上面4个步骤,一个自定义标签就开发好了
public class SimpleTag extends SimpleTagSupport{
@Override
public void doTag() throws JspException, IOException {
super.doTag();
getJspBody().invoke(null);
}
}
首先我们创建一个SimpleTag 类继承SimpleTagSupport,
这里的getJspBody().invoke(null); 他表示的是执行我们标签体里面的内容,标签体就是我们两个<r:simpleTage> </r:simpleTage> 这间的内容。这里是输出一段文字。
你能调用getJspBody().invoke(null) .那么说明你的TLD文件中的<body-content> 不能使empty的
1.scriptless 表示里面可以放EL标签,html代码 ,jsp标签,但是就是不能放script(java 代码)
<tag>
<name>simpleTage</name>
<tag-class>com.jstl.tlds.SimpleTag</tag-class>
<body-content>scriptless</body-content>
</tag>
注意这个TLD文件可以直接放在web-info目录下
页面JSP代码
<r:simpleTage>
走你
</r:simpleTage>
这个时候页面会输出"走你"
就是会执行我们标签中的代码 getJspBody().invoke(null);