如题:
首先,标签属于JSP规范,为了替换JSP中复杂的JAVA代码。形如:<pre:func /> 或 <pre:func>content</pre:func>
如何定义一个标签呢?
一、自定义一个类,实现SimpleTag接口(需要实现里面的所有方法,但是我们常用的只有一个doTag方法) 或者 继承SimpleTagSupport抽象类(已将SimpleTag接口中的所有方法都实现,用的时候只须我们重写doTag方法) 。 所以我们通常都是继承此抽象方法。
继承了此方法之后,我们重写doTag方法之后,一个标签类就定义完成了。
二、下面是配置标签
在WEB-INF目录下建立 一个.tld 后缀名的文件,添加如下声明:
<?xml xmlns?> 这里具体的属性直接copy 就可以了,我也没记住
<taglib xmlns="">
<tlib-version>1.0</tlib-version> //这是标签的版本号,自定
<short-name>pre</short-name> //这是推荐的前缀,随意
<uri>http://taglib.timelikesong.com/taglib</uri> //uri 唯一即可,后面tomcat会根据此uri 查找此标签库
<tag>
<name>func</name> //使用标签时的名称
<tag-class>com.timelikesong.taglib.MySimpleTag</tag-class> //对应标签类的全名称
<body-content>empty | scriptless | JSP | tagdependent</body-content>
<!-- 以下<attribute> 元素 在标签内有属性时才定义-->
<attribute>
<name>count</name> //属性名
<required>true</required> //是否必须填写
<rtexprvalue>true</rtexprvalue> // 是否支持表达式
</attribute>
</tag>
</taglib>
三、引入自定义标签
在JSP 中添加:<%taglib uri="http://taglib.timelikesong.com/taglib" prefix="pre" %>
四、在JSP 使用自定义标签
<pre:func count="5">
Content
</pre:func>
注:这里没有doTag() 的实现代码 。
自定义标签可实现简单的功能:
a、控制标签开始与结束之间的内容是否显示
b、控制结束标签后的内容是否显示
c、控制开始与结束标签之间内容显示次数
d、还可以实现逻辑处理,if , else,
e、可实现 for 循环 (包括增强型的for循环)