`
hcmfys
  • 浏览: 357786 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 标签的制作

    博客分类:
  • java
阅读更多
最近想学习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();
    }
}



  • 大小: 473 Bytes
分享到:
评论

相关推荐

    Java_斑马打印机打印标签

    本项目专注于利用Java语言来实现斑马打印机的标签打印功能,且支持中文字符的打印,这对于需要中文标签的企业来说至关重要。 首先,我们要了解Java与硬件交互的基本原理。Java本身并不直接支持硬件操作,但可以通过...

    单本JAVA电子书制作工具

    根据标签“单本JAVA电子书制作工具”,我们可以推测该软件专注于创建单一的电子书项目,而不是管理或组织多本书籍的库。 在压缩包子文件的文件名列表中,有以下几个关键文件: 1. MBookPCMark.exe:这很可能是该...

    java制作超简单动画

    在Java编程语言中,制作动画是一项常见的任务,尤其在开发用户界面或游戏时。本教程将探讨如何在Java中创建简单的动画,同时介绍进程的概念及其在实现动画中的应用。 首先,我们要了解Java中的动画基本原理。动画是...

    标签打印机JAVA串口打印源代码

    "不干胶打印"是指使用不干胶材料进行打印,常见于制作标签、条形码、二维码等。不干胶打印机往往支持热敏或热转印技术,热敏无需色带,直接通过加热打印头在热敏纸上产生图像;而热转印则需要色带,通过加热将色带上...

    手机java电子书制作工具

    标签同样为"手机java电子书制作工具",再次确认了这个主题的核心是关于制作适用于手机的Java格式电子书的工具。 在压缩包的文件名称列表中,我们有以下几个关键文件: 1. **setup.exe**:这是一个Windows安装程序,...

    java webHTML标签

    Java Web HTML标签是构建Web应用程序的基本元素,它们用于在页面上呈现内容并定义其结构。在Java Web开发中,HTML(超文本标记语言)通常与Servlets、JSP(JavaServer Pages)或现代Web框架如Spring MVC一起使用,来...

    java制作的通讯录

    《Java制作的通讯录系统详解》 在信息技术领域,开发一款功能完备的通讯录系统是一项常见的实践任务。本文将深入探讨一个使用Java编程语言构建的通讯录系统,它集成了登录验证、数据库交互以及基本的联系人管理功能...

    java 多线程制作动画

    总的来说,Java多线程技术在制作动画时起着至关重要的作用,它能帮助我们实现动态、流畅的视觉效果。通过巧妙地运用线程同步、定时器以及图形绘制API,可以构建出复杂且引人入胜的动画应用程序。在实际项目中,还...

    java制作标签云图与界面展示

    ### Java制作标签云图与界面展示 #### 一、引言 随着互联网技术的发展,标签云作为一种直观且富有视觉冲击力的数据展示方式被广泛应用。它不仅能够帮助用户快速理解某个主题下各个标签的重要程度,还能增加用户体验...

    javashop模板制作手册

    ### JavaShop模板制作手册核心知识点解析 #### 一、模板目录规范与构成 在JavaShop模板制作手册中,模板的组织结构与文件管理是至关重要的第一步。模板路径遵循以下规范: - **模板路径**:JavaShop安装目录下的`...

    SuperMap Objects Java关联属性表制作标签专题图

    在本主题中,我们将深入探讨如何使用SuperMap Objects Java来制作基于关联属性表的标签专题图。 首先,我们需要理解“关联属性表”的概念。在GIS中,空间数据和属性数据通常是分开存储的,空间数据描述了地物的位置...

    java制作的一个小博客

    这个“java制作的小博客”项目是一个适合初学者的实践教程,旨在帮助他们了解和掌握Java技术在构建网页应用,特别是博客系统方面的应用。通过参与这个项目,学习者可以深入理解Java编程语言,以及如何利用它来创建...

    SuperMap Objects Java导入Excel数据并制作标签展现在地图中

    在本示例中,我们探讨的是如何利用SuperMap Objects Java技术来从Excel文件中导入数据,并将这些数据在地图上以点对象的形式呈现,同时利用标签专题图展示属性信息。这是一个常见的地理信息系统(GIS)应用,它使得...

    java制作的聊天工具服务端源码

    【标签】"java,服务端"进一步明确了这个项目的焦点在于服务端开发,使用的是Java技术。Java在服务端应用中的优势在于其多线程支持、丰富的类库以及JVM(Java虚拟机)提供的高效运行环境。 【压缩包子文件的文件名称...

    Java applet制作聊天室

    本项目“Java applet制作聊天室”利用Java Applet技术构建了一个在线聊天平台,用户可以在网页上进行实时的多人或单人聊天。下面将详细介绍这个项目的相关知识点。 1. Java Applet基础: - Java Applet是Java平台...

    java制作360度全景页面的源码和脚本提供

    Java制作360度全景页面是一项技术性强且充满趣味性的任务,主要涉及到图像处理、Web开发和用户交互设计。在给定的文件中,我们有若干个类文件(ptviewer.class、objplay.class、op_hs.class)以及HTML文件(说明.htm...

    音频分割程序Java语言制作

    标签进一步揭示了项目的特性:“Java”表明是用Java编程语言实现的,这是一种跨平台的、广泛使用的编程语言,适合开发桌面应用;“音频”和“分割”则明确了应用的核心功能;“简单”可能是指程序设计简洁,易于理解...

    Java报表制作2

    在Java编程领域,报表制作是一项重要的技能,尤其对于开发企业级应用的程序员来说更是不可或缺。本教程“Java报表制作2”旨在帮助初级Java程序员提升在报表设计和实现方面的能力。通过视频教学的方式,将深入讲解...

    java制作的日历记事本

    【标签】:“JAVA”表明这个项目是用Java语言编写的。Java是一种广泛应用于各种领域的编程语言,以其跨平台性和“一次编写,到处运行”的特性而闻名。在学习JAVA的过程中,开发者会接触到包括基本语法、类库、异常...

Global site tag (gtag.js) - Google Analytics