jsp 自定义标签

来源:互联网 发布:微电影片头素材知乎 编辑:程序博客网 时间:2024/05/17 02:31



1. tag.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%><%@page import="java.util.Date" %><%@ taglib uri="/WEB-INF/tag.tld" prefix="itcast" %>显示系统的当前日期:<%= new Date() %> <br/> 显示系统的当前日期:aaaaaaa    <itcast:Date/><br/> 

2. web.xml
<!-- 配置标签库 --><jsp-config><taglib>  <!-- 在jsp页面使用的tld文件的名称,看成一个别名 --><taglib-uri>/WEB-INF/tag.tld</taglib-uri><!-- 标签库在当前web应用的完整路径,/表示从更路径开始 --><taglib-location>/WEB-INF/tld/tag.tld</taglib-location></taglib></jsp-config>

3.tag.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 web-jsptaglibrary_2_0.xsd"         version="2.0">         <!-- 标签库的描述信息 -->        <description>mytag l.0</description>        <!-- 标签库的概述 -->        <display-name>mytag core</display-name>        <!-- 标签库的版本 -->        <tlib-version>1.0</tlib-version>         <!-- 在jsp页面建议使用的标签前缀名 -->        <short-name>itcast</short-name>         <!-- 定义该标签库的URI,给该tld文件的唯一标识 -->         <uri>http://www.crazyit.org/mytaglib</uri>         <!-- 定义第一个标签 -->         <tag>             <!-- 定义标签名,在Jsp页面中使用,是标签的唯一名称,在整个tld文件中唯一 -->             <name>Date</name>             <!-- 定义标签处理类 -->             <tag-class>day14.DateTag</tag-class>             <!-- 定义标签体的类型:没有标签体为空 -->             <body-content>empty</body-content>         </tag>     </taglib> 

4. Date.java
package day14;import java.io.IOException;import java.util.Date;import javax.servlet.jsp.JspContext;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.JspFragment;import javax.servlet.jsp.tagext.JspTag;import javax.servlet.jsp.tagext.SimpleTag;/* * <%= pageContext.getOut().print(new Date()) %>  */public class DateTag implements SimpleTag{private PageContext pageContext;/* * 2.处理业务逻辑 * @see javax.servlet.jsp.tagext.SimpleTag#doTag() */public void doTag() throws JspException, IOException {// 在 jsp页面中<itcast:Date/>位置输出System.out.println("调用  doTag    ");pageContext.getOut().print(new Date());}public JspTag getParent() {// TODO Auto-generated method stubreturn null;}public void setJspBody(JspFragment arg0) {// TODO Auto-generated method stub}/*  1.Jsp引擎将代表jsp页面的pageContext对象传递给标签处理器对象      该方法Jsp引擎调用,传递页面的pageContext对象给该方法的参数      class PageContext extends JspContext */public void setJspContext(JspContext pc) {System.out.println("调用  setJspContext    "+pc);pageContext=(PageContext)pc;}public void setParent(JspTag arg0) {// TODO Auto-generated method stub}}

总结:




原创粉丝点击