第一步 自定义标签类:
package com.ideal.hadoop.jobweb.web.tag; //请不要照抄,看清楚包路径
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import java.util.Date;
/**
* User: xushanshan
* Date: 14-6-4
* Time: 下午2:26
* Function: 用于页面显示两个日期时间的差
*/
public class DateDiffTag extends TagSupport {
private Date preDate;
private Date laterDate;
@Override
public int doStartTag() throws JspException {
try {
JspWriter out = this.pageContext.getOut();
if (preDate != null && laterDate != null) {
long diff = laterDate.getTime() - preDate.getTime();
long ss = diff % 1000;
long tmp = diff / 1000; //秒
long s = tmp % 60;
tmp = tmp / 60; //分钟数
long min = tmp % 60;
tmp = tmp / 60; //小时数
long hour = tmp % 24;
long day = tmp / 24; //天数
String diffString = "";
if (day == 0) {
if (hour == 0) {
if (min == 0) {
diffString = s + "秒";
} else {
diffString = min + "分" + s + "秒";
}
} else {
diffString = hour + "小时" + min + "分" + s + "秒";
}
} else {
diffString = day + "天" + hour + "小时" + min + "分" + s + "秒";
}
out.println(diffString);
out.flush();
}
} catch (Exception e) {
}
return SKIP_BODY;
}
@Override
public int doEndTag() throws JspException {
return EVAL_PAGE;
}
@Override
public void release() {
super.release();
this.preDate = null;
this.laterDate = null;
}
public Date getPreDate() {
return preDate;
}
public void setPreDate(Date preDate) {
this.preDate = preDate;
}
public Date getLaterDate() {
return laterDate;
}
public void setLaterDate(Date laterDate) {
this.laterDate = laterDate;
}
}
第二布 新建mytaglib.tld
<tag-class>里面的内容不要照抄
请把http:// 补齐,是优快云的毛病啦
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.0" xmlns="http:/java.sun.com/xml/ns/j2ee"
xmlns:xsi="http:/www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:/java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>dateDiff</short-name>
<uri>/myTaglib</uri>
<tag>
<name>showDateDiff</name>
<tag-class>com.ideal.hadoop.jobweb.web.tag.DateDiffTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>preDate</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>laterDate</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
<location>写对应的tld位置不要照抄
<jsp-config>
<taglib>
<taglib-uri>/myTaglib</taglib-uri>
<taglib-location>/WEB-INF/tld/mytaglib.tld</taglib-location>
</taglib>
</jsp-config>
第四步 JSP页面引用
<%@ taglib uri="/myTaglib" prefix="dateDiff" %>
第五步 JSP页面使用
<dateDiff:showDateDiff preDate="${executeTime}" laterDate="${finishTime}"></dateDiff:showDateDiff>
如发现BUG,请发送邮件到1337220620@qq.com 我们共同发展进步