自定义标签,方便你复习
来源:互联网 发布:珠江钢琴天猫淘宝 编辑:程序博客网 时间:2024/06/08 07:32
自定义标签
自定义标签分为传统标签和简单标签
自定义标签开发步骤
1.编写标签处理器
传统标签需要实现tag接口 实现类有TagSupport bodytagsupport
简单标签需要实现simpleTag接口 实现类有simpleTagSupport
bodytagsupport
常用方法 getString() 获取jsp的内容
getEnclosingWrite().write()把内容输入到jsp页面
simpleTagSupport
常用方法
JspTag getParent()得到父标签
JspFragment getJspBody()获取jsp标签体内容
jspFragment.invoke(null)把内容输入到jsp页面
2.编写标签库描述符文件简称tld文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-
jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>myTag</short-name>
<uri>/myTag</uri>
<tag>
指定自定义标签的注册名称
<name>simpleIterate</name>
指定自定义标签处理器类
<tag-class>
cn.sdbi.simpleTag.Demo1
</tag-class>
<!-- 指定标签体的类型,scriptless表示除了jsp脚本元素之外的jsp元素
empty表示标签体为空
JSP 表示标签体可以为任意的jsp元素
tagdependent表示jsp容器对标签体内容不进行解析处理
-->
<body-content>scriptless</body-content>
<attribute>
属性num
<name>num</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>//表示属性值为动态
</attribute>
</tag>
</taglib>
3.在jsp页面导入和使用自定义标签
<%@ taglib prefix="gz" uri="/myTag" %>
案例实现一个自定义简单标签 用来循环遍历
定一个标签处理器类去继承simpleTagSupport
package cn.sdbi.simpleTag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class Demo1 extends SimpleTagSupport {
private int num;
public void setNum(int num) {
this.num = num;
}
public void doTag() throws JspException, IOException{
//获取标签体
JspFragment js = this.getJspBody();
//对标签体进行循环
for(int i=0;i<num;i++){
js.invoke(null);
}
}
}
2.编写标签库描述符文件简称tld文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-
jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>myTag</short-name>
<uri>/myTag</uri>
<tag>
<name>simpleIterate</name>
<tag-class>
cn.sdbi.simpleTag.Demo1
</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>num</name>
<required>true</required>
</attribute>
</tag>
</taglib>
3.在jsp页面导入和使用自定义标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-
8"%>
<%@ taglib prefix="gz" uri="/myTag" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<gz:simpleIterate num="10">
hello boby<br>
</gz:simpleIterate>
</body>
</html>
自定义标签分为传统标签和简单标签
自定义标签开发步骤
1.编写标签处理器
传统标签需要实现tag接口 实现类有TagSupport bodytagsupport
简单标签需要实现simpleTag接口 实现类有simpleTagSupport
bodytagsupport
常用方法 getString() 获取jsp的内容
getEnclosingWrite().write()把内容输入到jsp页面
simpleTagSupport
常用方法
JspTag getParent()得到父标签
JspFragment getJspBody()获取jsp标签体内容
jspFragment.invoke(null)把内容输入到jsp页面
2.编写标签库描述符文件简称tld文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-
jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>myTag</short-name>
<uri>/myTag</uri>
<tag>
指定自定义标签的注册名称
<name>simpleIterate</name>
指定自定义标签处理器类
<tag-class>
cn.sdbi.simpleTag.Demo1
</tag-class>
<!-- 指定标签体的类型,scriptless表示除了jsp脚本元素之外的jsp元素
empty表示标签体为空
JSP 表示标签体可以为任意的jsp元素
tagdependent表示jsp容器对标签体内容不进行解析处理
-->
<body-content>scriptless</body-content>
<attribute>
属性num
<name>num</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>//表示属性值为动态
</attribute>
</tag>
</taglib>
3.在jsp页面导入和使用自定义标签
<%@ taglib prefix="gz" uri="/myTag" %>
案例实现一个自定义简单标签 用来循环遍历
定一个标签处理器类去继承simpleTagSupport
package cn.sdbi.simpleTag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class Demo1 extends SimpleTagSupport {
private int num;
public void setNum(int num) {
this.num = num;
}
public void doTag() throws JspException, IOException{
//获取标签体
JspFragment js = this.getJspBody();
//对标签体进行循环
for(int i=0;i<num;i++){
js.invoke(null);
}
}
}
2.编写标签库描述符文件简称tld文件
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-
jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<short-name>myTag</short-name>
<uri>/myTag</uri>
<tag>
<name>simpleIterate</name>
<tag-class>
cn.sdbi.simpleTag.Demo1
</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>num</name>
<required>true</required>
</attribute>
</tag>
</taglib>
3.在jsp页面导入和使用自定义标签
<%@ page language="java" import="java.util.*" pageEncoding="UTF-
8"%>
<%@ taglib prefix="gz" uri="/myTag" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords"
content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<gz:simpleIterate num="10">
hello boby<br>
</gz:simpleIterate>
</body>
</html>
阅读全文
0 0
- 自定义标签,方便你复习
- Android 知识图谱 (方便复习)
- 三个标签案例:帮你深入学习JSP自定义标签
- 三个标签案例:帮你深入学习JSP自定义标签
- 一个带标签的自定义控件 都可以改变 很方便
- 方便你ASP分页
- 方便你我他
- Android fragment中 简洁而方便的自定义ListView 规划你喜欢的风格
- HTML常用标签复习
- HTML表单标签复习
- 常用html标签复习
- 复习:H5新标签
- 创建你的第一个自定义jsp tag(jsp标签)
- 创建你的第一个自定义jsp tag(jsp标签)
- 手把手教你做一个自定义表格标签
- 手把手教你做一个自定义表格标签
- 手把手教你做一个自定义表格标签
- [github高级控件]带你走近->自定义标签云
- Git——入门篇
- SQL操作返回
- leetcode container with most water
- 表单序列化
- poj 1426 Find The Multiple
- 自定义标签,方便你复习
- 场景Scene
- AirBook GTI电脑这么厉害,竟然有数据恢复的功能?
- div下js失效的问题
- VC++:创建,调用Win32动态链接库
- timeline,一个简单精美的自定义时间轴
- 定时器
- 前端基于vue的分页
- Centos 7 右上角面板里没有wired network图标的问题