package com.xzit.customtag;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class DateFormatTag extends TagSupport {
private Date target; //对应标签的target属性
private String format; //对应标签的format属性
private static String DATE_BASE="date";//默认格式
private static String DATE_FULL="datefull";
private static String TIME="time";
private static String TIME_FULL="timefull";
@Override
public int doStartTag() throws JspException {
PrintWriter out = null;
try {
out = this.pageContext.getResponse().getWriter();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(format==null || format.equals("")) {
String dateStr = new SimpleDateFormat("yy/M/d").format(target);
out.print(dateStr);
}else if(format.equals(DATE_BASE)) {
String dateStr = new SimpleDateFormat("yy/M/d").format(target);
out.print(dateStr);
}else if(format.equals(DATE_FULL)) {
String dateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(target);
out.print(dateStr);
}else if(format.equals(TIME)) {
String dateStr = new SimpleDateFormat("h:m:s").format(target);
out.print(dateStr);
}else if(format.equals(TIME_FULL)) {
String dateStr = new SimpleDateFormat("HH:mm:ss").format(target);
out.print(dateStr);
}else {
try {
throw new Exception("format 属性的有效值必须是:"+DATE_BASE+","+DATE_FULL
+","+TIME+","+TIME_FULL);
} catch (Exception e) {
e.printStackTrace();
}
}
return super.doStartTag();
}
@Override
public int doEndTag() throws JspException {
return DateFormatTag.EVAL_PAGE;
}
public Date getTarget() {
return target;
}
public void setTarget(Date target) {
this.target = target;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
1.0
1.2
<short-name>custom_RTshort-name>
CustomTag
自定义标签
class>
org.apache.taglibs.standard.tlv.JstlCoreTLV
class>
Provides core validation features for JSTL tags.
date
class>com.xzit.customtag.DateFormatTagclass>
empty
转换Date对象为字符串格式
target
true
true
java.util.Date
format
false
false
java.lang.String
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<%@ taglib uri="/WEB-INF/mytag/customTag.tld" prefix="m" %>
自定义标签
<%
Date time = new Date();
%>
剩余部分adddd
<?xml version="1.0" encoding="UTF-8"?>
customTag2
index.jsp