jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一个时间转换标签为例:github地址

1. 在项目中src中建一个com.xiangmuming.tags包,里面建一个类DateTag.java,内容为:

此类的内容参考地址,在引入的时候也可以参考此文章在web.xml中配置一下标签的路径,这里我没有配置这个。

/**
 * 用于页面 jstl时间格式化
 */
public class DateTag extends TagSupport {

    private static final long serialVersionUID = 6464168398214506236L;
    private String value;
    public int doStartTag() throws JspException {
        String vv = "" + value;
       
        try {
            SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            String s =  dateformat.format(new Date(Long.valueOf(vv+"000")));
            pageContext.getOut().write(s);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

    public void setValue(String value) {
        this.value = value;
    } 
    
}

注:在编写表现对应的实现类是,需要重载BodyTagSupporrt类的几个方法:doStartTag(), setBodyContent(), doInitBody(), doAfterBody(), doEndTag(); 参考地址 它们执行顺序如下:doStartTag()→doInitBody()→setBodyContent()→doAfterBody()→doEndTag() doStartTag()方法可返回EVAL_BODY_INCLUDE或SKIP_BODY, 如果返回EVAL_BODY_INCLUDE则继续执行; 如果返回SKIP_BODY则接下来的doInitBody(),setBodyContent(), doAfterBody()三个方法不会被执行, 而直接执行doEndTag()方法。 setBodyContent()方法用于设置标签体内容,如果在此之前要作一些初始化工作,则在doInitBody()方法中完成。 标签体内容执行完后,会调用doAfterBody()方法,此方法可返回EVAL_BODY_TAG, SKIP_BODY,EVAL_PAGE或SKIP_PAGE。 如果返回EVAL_BODY_TAG则会再次设置标签体内容,直到返回SKIP_BODY; 如果返回EVAL_PAGE则标签体执行完后会继续执行JSP页面中接下来的部分; 如果返回SKIP_PAGE,则JSP页面的后续内容将不再执行。

2. 在WEB-INF文件夹下建一个mytags.tld文件(文件名可以自定义),作为标签的配置文件,内容如下:  
    <?xml version="1.0" encoding="ISO-8859-1" ?>
<!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-version>1.2</jsp-version><!-- 代表jsp的版本 -->
  <short-name>mt</short-name><!-- 你的标签库的简称 -->
  <uri>http://xiangmuming.com/mytags</uri><!-- 你标签库的引用uri -->
      <tag>
      <name>date</name><!-- 你定义的标签的名称 -->
       <tag-class>com.xiangmuming.tags.DateTag</tag-class><!-- 对应的标签处理程序:包名+类名 -->
      <attribute>
            <name>value</name>
            <required>true</required>
            <rtexprvalue>true</rtexprvalue>
        </attribute>
      <!--<body-content>JSP</body-content> --><!-- 标签体内容的格式 -->
  </tag>
 </taglib>

3. 在jsp页面使用,页面的所有内容如下:
        <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    //引入自定义的标签库
<%@ taglib prefix="tmpl" uri="http://xinxianggov.com/mytags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Title</title>
</head>
<body>
    <tmpl:date value="${time }"></tmpl:date>
</body>
</html>
//其中${ time }是一个int类型的时间戳的变量  

关于jstl库中的日期标签的使用请参考 注:本文是结合网上的资料及自己的总结所得,如需转载请注明http://www.cnblogs.com/zhuchenglin/p/8109787.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LIN_ZONE

jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一个时间转换标签为例:gi...

9420
来自专栏10km的专栏

系统存在多个opencv库导致的caffe运行异常:undefined symbol imencode imread

今天运行faster rcnn demo的时候居然出错了: guyadong@gyd-u16:~/tmp/py-faster-rcnn$ tools/demo...

405100
来自专栏坚毅的PHP

jersey处理支付宝异步回调通知的问题:java.lang.IllegalArgumentException: Error parsing media type 'application/x-www

tcpflow以流为单位分析请求内容,非常适合服务器端接口类服务查问题 这次遇到的问题跟支付宝支付后的回调post结果有关 淘宝的代码例子: publi...

63350
来自专栏lzj_learn_note

Volley源码分析学习

2)根据SDK版本来创建HttpStack的实现,如果是2.3以上的,则使用基于HttpUrlConnection实现的HurlStack,反之,则利用Http...

12560
来自专栏LIN_ZONE

jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一个时间转换标签为例:gi...

9520
来自专栏菩提树下的杨过

Gearman使用示例

最近的一个旧项目重构过程中,使用到了gearman这个开源项目,简单来讲,这是一个类似MQ的异步系统,一边派发任务,一边处理任务(有类似MQ中的消息发送方与接收...

14910
来自专栏比原链

Derek解读Bytom源码-启动与停止

Gitee地址:https://gitee.com/BytomBlockchain/bytom

13730
来自专栏行者悟空

利用zookeeper实现服务上线(离线)自动感知

33120
来自专栏Java3y

WebService就是这么简单

WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧…. 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那...

5.2K150
来自专栏LIN_ZONE

jsp 自定义标签解决jsp页面中int时间戳的时间格式化问题

之前在项目中根据需求,需要自定义标签,经过查询w3c文档,自己也踩了一些坑,特此记录自定义标签的步骤,下面就以我之前的一个例子中的定义一个时间转换标签为例:gi...

8320

扫码关注云+社区

领取腾讯云代金券