jsp自定义标签
程序员文章站
2022-05-30 22:11:29
...
一:JSP 自定义标签
自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。
JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面。 JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。
你可以继承SimpleTagSupport类并重写的doTag()方法来开发一个最简单的自定义标签。
二:自定义标签的开发过程
第一步:编写标签处理类,并继承TagSupport,重写其中的doStartTag()方法
代码如下:
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class LoginDateTag extends TagSupport{
private static final long serialVersionUID = 1L;
@Override
public int doStartTag() throws JspException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = simpleDateFormat.format(new Date());
try {
pageContext.getOut().println(dateStr);
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
}
}
第二步:定义标签库描述文件xxx.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>/xx-tag</uri>
<tag>
<name>loginDate</name>
<tag-class>com.xx.tag.LoginDateTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
第三步:将标签库描述文件xxx.tld放到WEB-INF或其子目录下
第四步:在jsp文件中使用自定义标签,代码如下:
<%-- <%@page import="java.text.SimpleDateFormat,java.util.Date"%> --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="xxx" uri="/hanweb-tag"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- <%
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = simpleDateFormat.format(new Date());
%> --%>
欢迎来到德莱联盟 !您的登录时间为:<%-- <%=dateStr %> --%> <xxx:loginDate/>
</body>
</html>
上一篇: IIS6中配置PHP
下一篇: jsp自定义标签