最近想学习Struct2 看那些标签 不tai好懂,所以我决定先学习怎么制作标签,那样学好狠多

package com.jxr;

import javax.servlet.jsp.tagext.TagSupport;import javax.servlet.jsp.tagext.Tag;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.JspException;import java.awt.*;import java.io.IOException;

/** * hcmfys.@163.com * User: Administrator * Date: 2009-12-3 * Time: 21:48:26 */public class Timer extends TagSupport {

    private String timerId;

    public void setTimerId(String timerId) {        this.timerId = timerId;    }

    public void setTimer(int timer) {        this.timer = timer;    }

    public String getTimerId() {        return timerId;    }

    public int getTimer() {        return timer;    }

    private int timer;

    PageContext pc = null;//声明pagecontext对象

    /**     * 设置页面的上下文 第一步     */    public void setPageContext(PageContext arg0) {        pc = arg0;        super.setPageContext(arg0);    }

    /**     * 设置父标签 第二步     */    public void setParent(Tag arg0) {        super.setParent(arg0);    }

    /**     * 开始标签要执行的 第三步     */    public int doStartTag() throws javax.servlet.jsp.JspException {        JspWriter writer = pc.getOut();        try {            writer.write(prepareJs(getTimerId(), getTimer()));        } catch (IOException e) {            e.printStackTrace();        }        return TagSupport.EVAL_PAGE;//根据返回值看看标签结束后要怎样执行别的代码    }

    /**     * 标签结束后的内容 第四步     */    public int doEndTag() throws JspException {        return TagSupport.EVAL_PAGE;//根据返回值看看标签结束后要怎样执行别的代码    }

    /**     * 释放资源 第五步     */    public void release() {        super.release();    }

    private String prepareJs(String timerId, int timer) {        StringBuffer sb = new StringBuffer();        sb.append(String.format("<div id=\"%s\"></div>\n", timerId));        sb.append("<script type=\"text/javascript\"  language=\"javascript\">\n");        sb.append("var timer = function(_id, skipTime) {\n");        sb.append("        this.id = _id;    \n");        sb.append("        this.skipTime = skipTime; \n");        sb.append("        };\n");        sb.append("timer.prototype = { \n");        sb.append("       start:function() {  \n");        sb.append("        var _self = this;   \n");        sb.append("        _self.timerId = window.setInterval(function() {                                 \n");        sb.append("        var today = new Date();                     \n");        sb.append("        var year = today.getYear() + 1900;       \n");        sb.append("        var month = today.getMonth() < 9 ? \"0\" + ( today.getMonth() + 1) : (today.getMonth() + 1); \n");        sb.append("       var day = today.getDate() < 10 ? \"0\" + today.getDate() : today.getDate();              \n");        sb.append("       var hour = today.getHours() < 10 ? \"0\" + today.getHours() : today.getHours();          \n");        sb.append("        var minute = today.getMinutes() < 10 ? \"0\" + today.getMinutes() : today.getMinutes();   \n");        sb.append("       var secord = today.getSeconds() < 10 ? \"0\" + today.getSeconds() : today.getSeconds();  \n");        sb.append("        document.getElementById(_self.id).innerHTML = year + \"-\" + month + \"-\" + day + \" \" + hour + \":\" + minute + \":\" + secord;\n");        sb.append("        }, _self.skipTime); \n");        sb.append("},\n");        sb.append("stop:function() { \n");        sb.append("        var tId = this.timerId;    \n");        sb.append("        if (tId) {      ");        sb.append("       window.clearTimeout(tId);  \n");        sb.append("         } \n");        sb.append("       }   \n");        sb.append("     } \n");        sb.append(String.format("var t_%s = new timer(\"%s\", %d);\n", timerId, timerId, timer));        sb.append(String.format("t_%s.start();\n", timerId));        sb.append("</script>\n");        return sb.toString();    }}

[img]http://dl.iteye.com/upload/attachment/176046/85708209-4253-3694-83b5-edcfc597f17d.bmp[/img]

java 标签的制作相关推荐

  1. 常用的6款Java开源报表制作工具

    本文为大家推荐6款常用的Java开源报表制作工具,供开发者学习.参考. 1.Aspose.Cells for JasperReports 一个基于Java的开源报表工具,它可以在Java环境下像其他I ...

  2. java 开源 报表_6款常用的Java开源报表制作工具

    原标题:6款常用的Java开源报表制作工具 1. Aspose.Cells for JasperReports是一个基于Java的开源报表工具,它可以在Java环境下像其他IDE报表工具一样来制作报表 ...

  3. html range关联文本框,HTML5gt;meter标签与input(type=range)标签结合制作简易范围指示器...

    HTML5>meter标签与input(type=range)标签结合制作简易范围指示器 发布时间:2020-03-26 15:41 很多时候我们能看到这样的表示范围的优化工具,能给人带来很好的 ...

  4. java标签用法详解_介绍一个javaWeb自定义标签的用法详解

    这篇文章主要介绍了javaWeb自定义标签用法,结合实例形式分析了javaweb自定义标签的功能.定义方法及执行原理,需要的朋友可以参考下 本文实例讲述了javaWeb自定义标签用法.分享给大家供大家 ...

  5. Docker Java程序镜像制作

    Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...

  6. java斗地主程序制作过程

    java斗地主程序制作过程 效果 项目概况 代码分布 效果 项目概况 代码分布 首先对卡牌进行编写 package com;import java.awt.Point; import java.awt ...

  7. table标签,制作表格注册表

    table标签,制作表格注册表 今天复习了一下html,发现在表格,表单这一方面还是不够熟练,所以写了这篇文章,以便复查. 首先,来看看要做成的注册表: 性格测试表,一键生成你的性格表 这里我用标题标 ...

  8. java操作pdf制作电子签章

    #java操作pdf制作电子签章 ##电子签章简介 电子签章,与我们所使用的数字证书一样,是用来做为身份验证的一种手段,泛指所有以电子形式存在,依附在电子文件并与其逻辑关联,可用以辨识电子文件签署者身 ...

  9. Java安装程序制作工具

    Java安装程序制作工具 IzPack 是一个 Java 安装程序制作工具,能够制作一些简单的安装程序.制作出来的安装程序能在 Unix-like, MacOS X, Windows 等系统平台上运行 ...

  10. 一键安装,双击运行——Java安装程序制作

    如果您喜欢这些文章,欢迎点击此处订阅本Blog <script type="text/javascript"></script> <script sr ...

最新文章

  1. IDEA 格式化代码Reform Code快捷键无效
  2. 题目1132:与7无关的数
  3. js实现Form表单submit提交截获数据(各浏览器通用)
  4. Py之Kivy:Python库之Kivy的简介、安装、使用方法之详细攻略
  5. mysql 重启io线程_MySQL IO线程及相关参数调优
  6. Linq to SQL只支持SQL Server(所选对象使用不支持的数据提供程序)
  7. ubuntu下面使用clion
  8. shrio的rememberMe不起作用
  9. 扩展欧几里得exgcd算法 acm寒假集训日记22/1/12
  10. yolo系列外文翻译_Yolo系列其三:Yolo_v3
  11. 多线程的那点儿事(之生产者-消费者)
  12. 信贷风控必知必会:逾期相关的知识点总结
  13. 华为云发布 GaussDB(DWS) 实时数仓,技术创新释放行业数据价值
  14. java 相关最新技术_你必须掌握的 21 个 Java 核心技术!
  15. 产品设计体会(五五)
  16. 雷军:《我十年的程序员生涯》系列之一:我的程序人生路
  17. python多线程爬取美图录网站图集按模特姓名存储到本地(一)
  18. 软件语音验证码webservice_明明发送了却迟迟收不到短信验证码?
  19. k8s cm ( ConfigMap ) 学习
  20. mysql数据库DBA题型问题解答

热门文章

  1. C++ 产生0-1之间的随机数
  2. Python之os库
  3. RDL 报表 - 制作双坐标轴图表
  4. python打印星号图案_Python使用for循环打印星号三角形实例
  5. 使用mybatis的Vo对象简单完成需求查询
  6. 大二网页制作实习总结
  7. 【调剂】济南大学智能计算与科学计算课题组现接收计算机专业 (学术型) 硕士生调剂...
  8. SparkMllib模型选择与优化-网格搜索和交叉验证
  9. JavaScript数组方法总结
  10. 陀螺世界脚本合集分享,autojs弹窗代码、autojs多选勾选代码