自定义标签
2015-06-30 10:47
162 查看
自定义标签
step1,写一个java类,继承SimpleTagSupport类,有属性的话给get、set方法
step2,在doTag方法里面,编写相应的处理逻辑。
step3,描述标签。要在.tld文件里面描述,并且, .tld文件要放到WEB-INF\下。
注意:
body-content用来告诉容器,标签有没有标签体,如果有,可以出现哪些内容。
//没有标签体
<body-content>empty</body-content>
//可以有标签体,但是,标签体的内容不能够
//出现java代码(<% %>,<%= %>,<%! %>)
<body-content>scriptless</body-content>
//有标签体,并且,标签体的内容可以出现java
//代码。只有复杂标签技术才支持JSP,简单
//标签技术只支持empty,scriptless
<body-content>JSP</body-content>
如:自定义一个标签,实现给定字符串,在页面打印指定次数的功能
新建mytag包,新建HelloTag类,继承SimpleTagSupport类
在WEB-INF下面新建.tld文件,并进行配置
这样我们在JSP页面就可以使用我们自定义的标签
说明:cc就是short-name,ps就是tag里name的值str,和count是属性
这样就完成了在页面打印10次Hello的功能
step1,写一个java类,继承SimpleTagSupport类,有属性的话给get、set方法
step2,在doTag方法里面,编写相应的处理逻辑。
step3,描述标签。要在.tld文件里面描述,并且, .tld文件要放到WEB-INF\下。
注意:
body-content用来告诉容器,标签有没有标签体,如果有,可以出现哪些内容。
//没有标签体
<body-content>empty</body-content>
//可以有标签体,但是,标签体的内容不能够
//出现java代码(<% %>,<%= %>,<%! %>)
<body-content>scriptless</body-content>
//有标签体,并且,标签体的内容可以出现java
//代码。只有复杂标签技术才支持JSP,简单
//标签技术只支持empty,scriptless
<body-content>JSP</body-content>
如:自定义一个标签,实现给定字符串,在页面打印指定次数的功能
新建mytag包,新建HelloTag类,继承SimpleTagSupport类
package mytag; import java.io.IOException; import javax.servlet.jsp.JspContext; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.SimpleTagSupport; /** * 自定义标签 * 需要继承SimpleTagSuppor类,属性需要get,set方法,重写doTag方法 * 在WEB-INF下面新建对应的.tld文件并完成相关的配置 * 这样在JSP页面就可以使用自定义的标签了 */ public class HelloTag extends SimpleTagSupport { private String str; private int count; @Override public void doTag() throws JspException, IOException { JspContext jspContext = this.getJspContext(); JspWriter out = jspContext.getOut(); for (int i = 0; i < count; i++) { out.println(str+"<br/>"); } } public String getStr() { return str; } public void setStr(String str) { this.str = str; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
在WEB-INF下面新建.tld文件,并进行配置
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" version="2.1"> <tlib-version>1.1</tlib-version> <short-name>cc</short-name> <uri>com.liuijunfen.mytag</uri> <tag> <name>ps</name> <tag-class>mytag.HelloTag</tag-class> <body-content>empty</body-content> <attribute> <name>count</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> <attribute> <name>str</name> <required>false</required> <rtexprvalue>false</rtexprvalue> </attribute> </tag> </taglib>
这样我们在JSP页面就可以使用我们自定义的标签
<%@ page import="java.util.*" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%> <%@taglib uri="com.liuijunfen.mytag" prefix="cc" %> <html> <head> </head> <body><br> <cc:ps str="Hello" count="10" /> </body> </html>
说明:cc就是short-name,ps就是tag里name的值str,和count是属性
这样就完成了在页面打印10次Hello的功能
相关文章推荐
- 初学oop
- MyBatis
- iOS Objective c 16进制字符串转为二进制数组
- 外媒评小米:为什么这家公司需要在印度取得成功?
- SolrCloud分片流程
- 基于FBX SDK的FBX模型解析与加载 -(二)
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- 结构体
- 转载iOS--->RunLoop
- 美股史考特证券开户教程
- 苹果一些乱七八糟流程整理
- LogMiner Dictionary Files and Redo Log Files
- 在VS2010下配置OpenCV 2.3
- kendo UI loading 操作方法:
- 12个C语言面试题,涉及指针、进程、运算、结构体、函数、内存,看看你能做出几个!
- WPF的布局--DockPanel
- ckeditor上传图片
- nohup后台运行以及重定向标准输出和标准异常
- 基于FBX SDK的FBX模型解析与加载 -(一)
- VC的自动化向导的BUG (vs2005调用LabView控件类成员函数报错)