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(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一个不断完善的开源JSP标签库,由Apache的Jakarta小组负责维护。该标签库专为简化JSP页面开发...
在上面的示例代码中,fmt:parseDate 标签用于解析两个日期字符串,一个是 param.date,另一个是 param.isoDate。param.date 的格式为 yyyy/MM/dd:HH:mm:ss,而 param.isoDate 的格式为 yyyyMMdd'T'HHmmss。 fmt:...
JSTL(JavaServer Pages Standard Tag Library)是用于简化JSP开发的一组标准标签库,其中包含了处理日期和时间格式化的标签。在JSP页面中,JSTL提供了`fmt`标签库,用于处理日期和时间的显示和解析,使得我们可以...
<p>Current Date: <fmt:formatDate value="${current}" type="both" dateStyle="long" timeStyle="long"/> <p>User Locale: <fmt:setLocale value="zh_CN"/>Chinese</p> <p>Test Value: <fmt:message key="test"/...
`fmt`标签是JavaServer Pages (JSP)中Jakarta Tag Library (JSTL)的一部分,主要用于文本格式化,特别是数字和日期的处理。在本文中,我们将深入探讨`fmt`标签的使用方法、属性以及相关示例。 首先,`fmt`标签提供...
1. **Java的基本数据类型**:Java提供了八种基本数据类型,分别为四种整型(byte, short, int, long),两种浮点型(float, double),一种字符型(char)以及一种布尔型(boolean)。`String`不是基本数据类型,而是一个类...
- 在JSP页面中,可以通过JSTL标签或其他方式访问这些数据。 - 例如,在Action中获取城市ID(`cityId`)或`MthCity`对象,并将其设置到值栈中,以便JSP页面能够访问到这些数据。 ```java public void setCityId...
3. **JSTL(JavaServer Pages Standard Tag Library)**:为了提高JSP的可读性和可维护性,JSTL提供了一系列标签库,如`c:forEach`, `c:if`, `fmt:formatDate`等,用于简化页面逻辑。 ```jsp <%@ taglib uri="http:...
- 其他依赖库:包括JSTL、AspectJ等 2. **构建过程**: 1. **创建Web项目**:首先在开发环境中创建一个新的Web项目。 2. **添加依赖库(Jar包)**:接下来需要向项目中添加必要的第三方库。这些库主要包括但不...
Java 提供了多种处理日期和时间的方法,如 Date 类和 Calendar 类。在 Java 8 中还引入了新的日期时间 API,如 LocalDate、LocalTime 和 LocalDateTime。 **Java正则表达式** 正则表达式用于模式匹配和文本处理。...
- `java.util.Date` 用于表示特定的时间点,提供了多种方法来获取日期和时间的部分。 - **日历类 Calendar** - `java.util.Calendar` 是一个抽象类,提供了一种更灵活的方式来操作日期和时间。常用子类 `...