标签:自定义标签
例如我们在一个html文档中写一个自定义的标签
<%@taglib uri="" prefix="c1"%> //uri是一个命名空间,perfix是一个前缀
在html的正文中我们写上 <c1: msg="" qty=""> //c1就是这个标签的标签名,msg和qty是属性
我们要定义这个标签就要先些上这个标签的类,这个类要继承SimpleTagSupport
public class HelloTag extends SimpleTagSupport{ //写上属性,要与标签中的属性一一对应,而且一定要写上set方法 private String msg; private int qty; public void setMsg(Strig msg){ this msg=msg; } public void setQty(int qty){ this qty=qty; } //按住右键找到source 找到override 找到dotag方法,将其覆盖 public void doTag() throws JspException, IOException { PageContext page=(PageContext)getJspContext();//得pageContext得天下 JspWriter out=page.getOut();//从而获得输出流 //下面是具体业务逻辑 for(int i=0;i<100;i++){ out.println("hello world"); } } } }
最后写个描述文件(相当与在自定义的标签与类定义之间的一个桥梁的作用)
在WEB-INF下建一个mytag.tld的描述性文件(可以参照c.tld)
<?xml?>描述文件
<taglib ssssss>
<tlib-version>1.1
<short-name>c1 //这就是个前缀
<uri>test //命名空间
<tag>
<name>hello</name>
<tag-class>tag.HelloTag</tag-class>
<bady-content>empty</bady-content>
//有三个值empty 没有标签体;scriptless 可以有标签体,但是标签体的内容不能有java代码(《% %》 //《%= %》《%! %》);jsp 有标签体,可以写java代码,但是只有复杂有,我们学的简单没有这个了
<attribute>
<name>
<required>true</required>//表示必须要赋值
<rtexprvalue>true //表示可以动态赋值,可以用el表达式来赋值
</attribute>
</tag>
</taglib>
自定义标签的总结:
1,要写上一个自定义标签的类
2,要写一个在WEB-INF下写一个对这个标签的描述性文件
3,就可以在html中使用了
本文出自 “大数据之路” 博客,请务必保留此出处http://10732666.blog.51cto.com/10722666/1707343
标签:自定义标签
原文地址:http://10732666.blog.51cto.com/10722666/1707343