• jsp简单自定义标签demo展示《二》


    1.需求

      在jsp页面展示当前时间。

    2.编写自定义标签类 showTime.java

      

    package com.zy.tag;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.SimpleTagSupport;
    public class JspTag extends SimpleTagSupport{
           //标签属性
           private String now;
        public String getNow() {
            return now;
        }
        public void setNow(String now) {
            this.now = now;
        }
        @Override
        public void doTag() throws JspException, IOException {
            if(now.equals("当前时间")){
                Date date = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String d = sdf.format(date);
                PageContext context = (PageContext) this.getJspContext();
                JspWriter out = context.getOut();
                out.write(d);
                            out.flush();
            }
            super.doTag();
        } 
    }
                 

    3.创建showTime.tld文件

      3.1.先在pom.xml中引入jsp-api.jar

      

         <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
                <version>2.2</version>
                <scope>provided</scope>
            </dependency>

      3.2.在WEB-INF目录下创建showTime.tld文件

        右键点击WEB-INF-->选择New-->选择Other--搜索xml-->点击XML File -->next-->在File name输入框出输入:showTime.tld-->next-->选择Create XML file form a DTD file选项-->next-->选择Select XML Catalog entry选项-->选择

    -//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2 //EN选项-->next-->finish

        

        

        

        

     创建后,showTime.tld文件初始状态如下所示:

        

       3.3.showTim.tld文件编写,代码如下:

        

    <?xml version="1.0" encoding="UTF-8"?>
    <!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版本 -->
      <jsp-version>1.0</jsp-version>
      <!-- 标签库的简写 -->
      <short-name>showTime</short-name>
      <!-- 指定这个标签库的uri信息 -->
      <uri>http://www.zy.tag</uri>
      <!-- 标签集 -->
      <tag>
          <!-- 标签名字 -->
        <name>name</name>
        <!-- 指定标签的类 -->
        <tag-class>tag-class</tag-class>
        <!-- empt:表示没有标签体   JSP:表示标签体可以包含JSP代码  scriptless:表示标签体可以包含EL表达式和JSP动作元素,但不能包含JSP的脚本元素  tagdependent:表示标签体交由标签本身去解析处理。即在标签体中所写的任何代码都会原封不动地传给标签处理器-->
          <body-content>scriptless</body-content>
          <attribute>
            <!-- 标签属性名称 -->
            <name>now</name>
            <!-- 这个属性是否必填 -->
            <required>true</required>
            <!-- 这个属性是否el表达式-->
            <rtexprvalue>true</rtexprvalue>
        </attribute>
      </tag>
    </taglib>

      3.4.在jsp页面中使用

      

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
    <%@taglib uri="http://www.zy.tag" prefix="timeTag" %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>首页</title>
    </head>
    <body background="../img/body-bg.png">
        <hr/>
        <timeTag:showTime now="当前时间">
        </timeTag:showTime> 
    </body>
    </html>

      3.5.效果如下图所示:

      

      

  • 相关阅读:
    Codeforces Round #415 (Div. 2) C. Do you want a date?
    Lifting the Stone 计算几何 多边形求重心
    计算几何 多边形面积 和 重心 的求法
    POJ 3304 segments 线段和直线相交
    LibreOJ #114. k 大异或和
    LibreOJ #113. 最大异或和
    对于各种各样平衡树的比较
    数组splay ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
    替罪羊树 ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
    红黑树 ------ luogu P3369 【模板】普通平衡树(Treap/SBT)
  • 原文地址:https://www.cnblogs.com/yixtx/p/8359831.html
Copyright © 2020-2023  润新知