• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp 自定义标签实例
    POST TIME:2021-10-18 07:48
    分三步:
    一、在WEB-INF 下建一个名为tlds的文件夹,再建一个tld文件,如 formatTime.tld,内容为:
    复制代码 代码如下:

    ?xml version="1.0" encoding="ISO-8859-1" ?>
    !DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    taglib>
    tlibversion>1.0/tlibversion>
    jspversion>1.1/jspversion>
    shortname>ntuc/shortname>
    tag>
    name>formatTimeAsString/name>
    tagclass>com.ufinity.taglibTest.FormatTimeTag/tagclass>
    bodycontent>empty/bodycontent>
    attribute>
    name>timestamp/name>
    /attribute>
    attribute>
    name>format/name>
    /attribute>
    attribute>
    name>showTH/name>
    /attribute>
    attribute>
    name>style/name>
    /attribute>
    /tag>
    /taglib>

    二、建一个class,内容为:
    复制代码 代码如下:

    package com.ufinity.taglibTest;
    import java.io.IOException;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    import javax.servlet.jsp.tagext.TagSupport;
    /**
    * Description of the class
    *
    * @author Wangqy
    * @version 1.0
    * @since 2009-8-25
    */
    public class FormatTimeTag extends TagSupport {
    /**
    * serialVersionUID long
    */
    private static final long serialVersionUID = 8757501937718830491L;
    private String timest
    private String format;
    private String showTH;
    private String style;
    public int doEndTag()
    {
    try
    {
    String info = this.convertDateTime(timestamp, format, Boolean.parseBoolean(showTH), style);
    pageContext.getOut().println(info);
    }
    catch (IOException e) {
    }
    return EVAL_PAGE;
    }
    private String convertDateTime(String dateTime, String formater, boolean showTH, String caseStyle) {
    String timePosted = null;
    SimpleDateFormat dateFm = null;
    DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
    Date formatTime = null;
    try {
    formatTime = format.parse(dateTime);
    } catch (ParseException e) {
    return null;
    }
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(formatTime);
    if (showTH) {
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    String daySuffix = "th";
    if ((day % 10) == 1) {
    daySuffix = ((day / 10) == 1) ? "th" : "st";
    } else if ((day % 10) == 2) {
    daySuffix = (day == 12) ? "th" : "nd";
    } else if ((day % 10) == 3) {
    daySuffix = (day == 13) ? "th" : "rd";
    }
    formater = formater.substring(0, formater.indexOf(" ")) + "'"
    + daySuffix + "'"
    + formater.substring(formater.indexOf(" "));
    dateFm = new SimpleDateFormat(formater, Locale.ENGLISH);
    } else {
    dateFm = new SimpleDateFormat(formater, Locale.ENGLISH);
    }
    timePosted = dateFm.format(formatTime);
    if (caseStyle.equals("Upper")) {
    timePosted = timePosted.toUpperCase();
    } else if (caseStyle.equals("Lower")) {
    timePosted = timePosted.toLowerCase();
    }
    return timePosted;
    }
    public void setFormat(String format) {
    this.format = format;
    }
    public void setShowTH(String showTH) {
    this.showTH = showTH;
    }
    public void setStyle(String style) {
    this.style = style;
    }
    public void setTimestamp(String timestamp) {
    this.timestamp = timest
    }
    }

    三、建个jsp页面测试下:
    复制代码 代码如下:

    %@ page language="java" pageEncoding="utf-8"%>
    %@ taglib uri="WEB-INF/tlds/formatTime.tld" prefix="tf" %>
    html>
    head>
    meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    title>自定义标签示例/title>
    /head>
    body>
    p>
    转换“20090403132233”
    /p>
    format:dd MMMM yyyy showTH:true style:Upper 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Upper"/>br/>
    format:dd MMMM yyyy showTH:true style:Lower 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Lower"/>br/>
    format:dd MMMM yyyy showTH:false style:Upper 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="false" style="Upper"/>br/>
    format:dd MMMM yyyy showTH:true style:"" 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style=""/>br/>
    /body>
    /html>

    ok了。这里timestamp是一个给定值,如果是通过${}标签动态取的话,需要将tld文件的
    复制代码 代码如下:

    attribute>
    name>timestamp/name>
    /attribute>

    修改为
    复制代码 代码如下:

    attribute>
    name>timestamp/name>
    rtexprvalue>true/rtexprvalue>
    /attribute>
    您可能感兴趣的文章:
    • JSP 自定义标签
    • JSP 自定义标签之一 简单实例
    • JSP自定义标签Taglib实现过程重点总结
    • 基于JSP 自定义标签使用实例介绍
    • jsp自定义标签技术(实现原理与代码以及平台搭建步骤)
    • JSP自定义标签获取用户IP地址的方法
    • jsp简单自定义标签的forEach遍历及转义字符示例
    • JSP自定义标签rtexprvalue属性用法实例分析
    • JSP自定义标签案例分析
    上一篇:JSP 报表打印的一种简单解决方案
    下一篇:AJAX自学练习 无刷新从数据库后台取数据显示
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信