`

如何编写jstl自定义标签(示例:自定义jstl Long型时间转为date型)

    博客分类:
  • jstl
 
阅读更多
jstl有很多时间格式化的标签,但貌似只是支持date型的,更多的我也没去细搜,不过貌似就是不支持long型,其实long型对我们也是很有

用的,比如说按时间排序、、很方便是不是、 在jstl里就比较麻烦了,好在jstl可以写自定义标签,写这篇文章的目的其实也不只是介绍这个

long型时间格式化问题,主要还是怎么写自定义标签.
package com.controller.touch;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * 用于页面jstl时间格式化
 * @author jiangnan
 *
 */
public class JSTLDateUtils extends TagSupport {

    /**
     * 
     */
    private static final long serialVersionUID = -3354015192721342312L;
    private String value;
    public void setValue(String value) {
        this.value = value;
    }
        private String parttern;
    public void setValue(String parttern ) {
        this.value =  parttern ;
    }
    public int doStartTag() throws JspException{
        String vv = String.valueOf(value);  
        long time = Long.valueOf(vv);  
        Calendar c = Calendar.getInstance();  
        c.setTimeInMillis(time);  
        SimpleDateFormat dateformat =new SimpleDateFormat(parttern);  
        String s = dateformat.format(c.getTime());  
        try {  
            pageContext.getOut().write(s);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return super.doStartTag();
    }
    public static void main(String[] args) {
        long a =1332744845078l;
         long time = Long.valueOf(a);  
            Calendar c = Calendar.getInstance();  
            c.setTimeInMillis(time);  
            SimpleDateFormat dateformat =new SimpleDateFormat("MM-dd HH:mm");  
            String s = dateformat.format(c.getTime());  
        System.out.println(s);
    }
}

在web.xml 中要添加这些东西:
<!-- 自定义JSTL时间格式化 -->
    <jsp-config>
        <taglib>        
            <taglib-uri>/tags</taglib-uri>   
            <taglib-location>/WEB-INF/datetag.tld</taglib-location>            
        </taglib>   
    </jsp-config>

datetag.tld则按下面书写
<?xml version="1.0" encoding="UTF-8"?>
<taglib>  
    <tlib-version>1.1</tlib-version>  
    <jsp-version>1.2</jsp-version>  
    <short-name>date</short-name>//这里说明一下,开始我也没加这个东西,但是发现resin疯狂的报错啊,后来才发现resin对tld文件做严格语法检查,所以一定要加上这个
    <tag>  
        <name>date</name>  
        <tag-class>com.controller.touch.JSTLDateUtils</tag-class>          
        <attribute>  
            <name>value</name>  
            <required>true</required>  
            <rtexprvalue>true</rtexprvalue>  
        </attribute>
<attribute>  
            <name>parttern</name>  
            <required>true</required>  
            <rtexprvalue>true</rtexprvalue>  
        </attribute>    
    </tag>  
</taglib>

最后jsp中就可以使用如下标签进行写代码了

<date:date value="${time}" pattern="yyyy-MM-dd HH:mm:ss"/>

别忘记在页头加上引用 <%@ taglib uri="/tags" prefix="date"%> 否则会报错哦 

如果想使用多个自定义的标签可以编写多个类,然后再tld中进行添加对用的tag就可以啦
分享到:
评论

相关推荐

    JSTL标签-讲解及实例

    ### JSTL标签详解及实例 #### 一、概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一个不断完善的开源JSP标签库,由Apache的Jakarta小组负责维护。该标签库专为简化JSP页面开发...

    JSTL日期格式处理

    在上面的示例代码中,fmt:parseDate 标签用于解析两个日期字符串,一个是 param.date,另一个是 param.isoDate。param.date 的格式为 yyyy/MM/dd:HH:mm:ss,而 param.isoDate 的格式为 yyyyMMdd'T'HHmmss。 fmt:...

    JSTL日期、时间格式化标签.pdf

    JSTL(JavaServer Pages Standard Tag Library)是用于简化JSP开发的一组标准标签库,其中包含了处理日期和时间格式化的标签。在JSP页面中,JSTL提供了`fmt`标签库,用于处理日期和时间的显示和解析,使得我们可以...

    jatl fmt库

    &lt;p&gt;Current Date: &lt;fmt:formatDate value="${current}" type="both" dateStyle="long" timeStyle="long"/&gt; &lt;p&gt;User Locale: &lt;fmt:setLocale value="zh_CN"/&gt;Chinese&lt;/p&gt; &lt;p&gt;Test Value: &lt;fmt:message key="test"/...

    fmt标签详解

    `fmt`标签是JavaServer Pages (JSP)中Jakarta Tag Library (JSTL)的一部分,主要用于文本格式化,特别是数字和日期的处理。在本文中,我们将深入探讨`fmt`标签的使用方法、属性以及相关示例。 首先,`fmt`标签提供...

    JAVA笔试题,面试题(吐血推荐)

    1. **Java的基本数据类型**:Java提供了八种基本数据类型,分别为四种整型(byte, short, int, long),两种浮点型(float, double),一种字符型(char)以及一种布尔型(boolean)。`String`不是基本数据类型,而是一个类...

    Struts2 + Hibernate开发笔记(二).txt

    - 在JSP页面中,可以通过JSTL标签或其他方式访问这些数据。 - 例如,在Action中获取城市ID(`cityId`)或`MthCity`对象,并将其设置到值栈中,以便JSP页面能够访问到这些数据。 ```java public void setCityId...

    java EE比较常用的代码总结

    3. **JSTL(JavaServer Pages Standard Tag Library)**:为了提高JSP的可读性和可维护性,JSTL提供了一系列标签库,如`c:forEach`, `c:if`, `fmt:formatDate`等,用于简化页面逻辑。 ```jsp &lt;%@ taglib uri="http:...

    SSI整合小案例

    - 其他依赖库:包括JSTL、AspectJ等 2. **构建过程**: 1. **创建Web项目**:首先在开发环境中创建一个新的Web项目。 2. **添加依赖库(Jar包)**:接下来需要向项目中添加必要的第三方库。这些库主要包括但不...

    w3school_Java&JSP;教程

    Java 提供了多种处理日期和时间的方法,如 Date 类和 Calendar 类。在 Java 8 中还引入了新的日期时间 API,如 LocalDate、LocalTime 和 LocalDateTime。 **Java正则表达式** 正则表达式用于模式匹配和文本处理。...

    (超赞)JAVA精华之--深入JAVA API

    - `java.util.Date` 用于表示特定的时间点,提供了多种方法来获取日期和时间的部分。 - **日历类 Calendar** - `java.util.Calendar` 是一个抽象类,提供了一种更灵活的方式来操作日期和时间。常用子类 `...

Global site tag (gtag.js) - Google Analytics