数据库里存储的是bigint型的时间,entity实体中存放的是long类型的标签,现在想输出到jsp页面,由于使用的是jstl标签,而要显示的是可读的时间类型,找来找去有个 fmt:formatDate可以转化,但是只能将String类型的转成date型,long型则不可以,思考了好久,又不想破环jsp页面这种标签结构,参考网上jstl标签编写方法,如下:
第一步 写一个类继承TagSupport,实现doStartTag() 方法。

package com.pp.yxx.util.tags;

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport; import com.pp.yxx.util.DateUtils; /**
* 用于页面 jstl时间格式化
*
* @Title: JSTLDateUtils.java
* @Description: 转换Long时间戳为时间格式
* @author phpdragon
* @date 2014 -3- 4 下午06:28:51
*/
public class Long2DateTag extends TagSupport { private static final long serialVersionUID = 6464168398214506236L; private String value;
private String format; @Override
public int doStartTag() throws JspException {
String s = format == null ? DateUtils.timestamp2Time(value) : DateUtils
.timestamp2Time(value, format);
try {
pageContext.getOut().write(s);
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
} public void setValue(String value) {
this.value = value;
} public void setFormat(String format) {
this.format = format;
} }

第二步 编写tld文件,extendtag.tld,放在/WEB-INF目录下

<?xml version="1.0" encoding= "UTF-8"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>ext</short-name>
<uri>/extendTags</uri>
<tag>
<description>
转换long型参数为时间格式
</description>
<name>long2date</name>
<tag-class>com.pp.yxx.util.tags.Long2DateTag</tag-class>
<!--如果不需要标签体则设置empty,反之设定jsp -->
<body-content>JSP</body-content>
<attribute>
<description>
需要装换的值
</description>
<name>value</name>
<!-- 是否是必须,如果非必须没设置则为空 -->
<required>true</required>
<!-- 是否可在属性中使用表达式 -->
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
转换格式
</description>
<name>format</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

第三步  在web.xml中加入引用

<!-- 自定义TAG标签 -->
<jsp-config>
<taglib>
<taglib-uri>/extendTags</taglib-uri>
<!-- tld文件所在的位置 -->
<taglib-location>/WEB-INF/extendtag.tld</taglib-location>
</taglib>
</jsp-config>

第四步 在jsp页面开始使用

<%@ taglib uri="/extendTags" prefix="ext"%>
<ext:long2date value ="${publish}" format="yyyy-MM-dd HH:mm:ss" />

上述方式即可实现所述功能!

参考:http://hfutxf.iteye.com/blog/673472

自定义tag标签-实现long类型转换成Date类型的更多相关文章

  1. Oracle timestamp类型转换成date类型

    今天需要根据时间判断,统一修改某一个字段的数据.然后打开数据库发现,时间类型为timestamp类型.如下: 然后呢,这对我不是喝口水就可以解决的问题吗? 解决方案如下:我需要改这张表某个字段的内容, ...

  2. java中将SimpleDateFormat类型转换成Date类型

    try {String dateString = "2009-08-02 13:43:00";DateFormat df = SimpleDateFormat("yyyy ...

  3. Jsp 自定义tag标签

    1转自:https://blog.csdn.net/yusimiao/article/details/46835617 Jsp自定义tag标签 自定义tag标签的好处 程序员可以自定一些特定功能的标记 ...

  4. Java String类型转换成Date日期类型

    插入数据库时,存入当前日期,需要格式转换 import java.text.SimpleDateFormat; formatter = new SimpleDateFormat( "yyyy ...

  5. C# 字符串string类型转换成DateTime类型 或者 string转换成DateTime?(字符串转换成可空日期类型)

    在c#中,string类型转换成DateTime类型是经常用到的,作为基本的知识,这里在此做个小结.一般来说可以使用多种方法进行转换,最常用的就是使用Convert.ToDateTime(string ...

  6. SQL Server 2008 Datetime Cast 成 Date 类型可以使用索引(转载)

    很久没写blog,不是懒,实在是最近我这的访问速度不好,用firefox经常上传不了图片 ....... 今天无意发现了SQL Server 2008 Datetime Cast 成 Date 类型可 ...

  7. java中,字符串类型的时间数据怎样转换成date类型。

    将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...

  8. sqlserver搜索中怎么把varchar类型转换成numeric类型

    sqlserver搜索中怎么把varchar类型转换成numeric类型 可以用cast来转换 如:列名叫grade,表名为A select cast(grade as numeric(y,x)) f ...

  9. Mysql一个非常有用的内置函数今天碰到要把MySQL数据库中的varchar转换成date类型进

    Mysql一个非常有用的内置函数 今天碰到要把MySQL数据库中的varchar转换成date类型进行时间的比较和查询.在网上找了找,发现MySQL也跟其他数据库一样有自己内置的转换函数:str_to ...

随机推荐

  1. Android开发,使用背景图(xml drawable)为view 设置边框

    Android 开发中,遇到需要设置边框的情景,使用背景图来实现,代码如下: <layer-list xmlns:android="http://schemas.android.com ...

  2. Listener 监听对象的创建和销毁

    HttpSessionListener.ServletContextListener.ServletRequestListener分别用于控制Session.context.request的创建和销毁 ...

  3. 配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。

    http://www.68idc.cn/help/buildlang/ask/20150108163110.html ————————————————————————————————————————— ...

  4. Java设计模式(9)适配器模式(Adapter模式)

    适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用 ...

  5. 利用R里的options函数进行光标和数字位数设置

    用R写代码时,打字水平不高,有时候不知道乱按了一些键(现在我还不知道哪个键),光标就变成了加粗的竖直线,又改不回去.这种情况下我们可以用options函数进行光标设置,例如:options(promp ...

  6. C++ STL Maps

    Maps定义 --> 个人理解为python的字典 C++ Maps are sorted associative containers the contian unique key/value ...

  7. elasticsearch系列四:搜索详解(搜索API、Query DSL)

    一.搜索API 1. 搜索API 端点地址 从索引tweet里面搜索字段user为kimchy的记录 GET /twitter/_search?q=user:kimchy 从索引tweet,user里 ...

  8. python3两个字典的合并

    两个字典的合并其实很简单,直接用dict的update即可,代码如下: # /usr/bin/python3 # -*- encoding: utf-8 -*- ", "" ...

  9. unity--------------------四元数的旋转与原理

    [Unity技巧]四元数(Quaternion)和旋转 原文:http://blog.csdn.net/candycat1992/article/details/41254799 四元数介绍 旋转,应 ...

  10. C# POST数据base64到接口会出错的问题

    这个base64在requestHeader里面变成了base64=hySGNg22yX0AIjNQvNJw0xHEbi32NH%2BiRVKDkbOmUiKpxW0%2FS6rUgfLmSa527Y ...