【jsp标签】
什么时候需要使用jsp自定义标签?
当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签。
自定义标签步骤:
一:写一个java类:继承TagSupport类
package com.vmaxtam.dotest;
import javax.servlet.jsp.tagext.TagSupport;
public class MyTagTest extends TagSupport {
}
二:重写父类的setPageContext方法,作用于得到当前jsp页面的pageContext对象:
public class MyTagTest extends TagSupport {
private PageContext pageContext;
@Override
public void setPageContext(PageContext pageContext) {
this.pageContext=pageContext;
}
}
三:重写父类的doStartTag方法:
@Override
public int doStartTag() throws JspException {
try {
pageContext.getResponse().getWriter().write("晓哥威武");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
return super.doStartTag();
}
四:找到WEB-INF文件夹,新建一个tld类型的文件(一定要是tld文件)
然后:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version><!-- 代表标签库的版本号 -->
<jsp-version>1.2</jsp-version><!-- 代表jsp的版本 -->
<short-name>mtt</short-name><!-- 你的标签库的简称 -->
<uri>http://vmaxtam.com/mytag</uri><!-- 你标签库的引用uri -->
<tag>
<name>wangyiying</name><!-- 你定义的标签的名称 -->
<tag-class>com.vmaxtam.dotest.MyTagTest</tag-class><!-- 对应的标签处理程序:包名+类名 -->
<body-content>JSP</body-content><!-- 标签体内容的格式 -->
</tag>
</taglib>
五:在你需要时就需要你在jsp页面上写下如下代码:
<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
六:使用标签如下:
<html>
<head>
<title>My JSP 'testit.jsp' starting page</title>
</head>
<body>
<mmt:mytag></mmt:mytag>
</body>
</html>
如果说还不明白的话我们可以看看如下的流程图:
以上是常用的 如果要看完整的也有: