-
[武汉|结业弟子]JAVA-谭道霄0编辑于2018-03-17
-
[北京|结业弟子]JAVA-廖友0
如上面所述,可以使用jstl库,如果你想感受一下自定义标签,你也可以自己写一个
标签类
/*
此标签有两个作用,一是将传入的long类型时间转换为字符串类型时间;
二是当不传入时间时,自动获取当前系统时间。
*/
public class DateTagSimple extends SimpleTagSupport{
private Long value;
/*
要在标签中使用EL表达式,有如下步骤:
1、将属性的对象类型type设为Object,rtexprvalue设为true (关于在tld设为Object类型问题,貌似关系不大,即使是long,int,甚至是默认的String都行)
2、在set方法中执行如下evaluate方法并进行类型的转换
*/
public void setValue(Object value) throws JspException {
this.value = Long.parseLong((String) ExpressionEvaluatorManager.evaluate("value",value.toString(),Object.class,(PageContext)getJspContext()));
}
@Override
public void doTag() {
// 实例化日期转换类并设置日期格式
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(value != null){
Date date = new Date(value);
String stringTime = simpleDateFormat.format(date);
try {
// 获取当前JspContext对象并将值传递给它然后输出
getJspContext().getOut().println(stringTime);
} catch (IOException e) {
e.printStackTrace();
}
} else{
Date date = new Date();
String stringTime = simpleDateFormat.format(date);
try {
getJspContext().getOut().println(stringTime);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
tld文件
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>DateAndFormat</short-name>
<tag>
<name>date_s</name>
<tag-class>com.sun.utils.DateTagSimple</tag-class>
<body-content>empty</body-content>
<attribute>
<name>value</name>
<type>java.lang.Object</type>
<rtexprvalue>true</rtexprvalue>
<description>若value为null,则使用当前时间,否则进行Long到String类型时间转换</description>
</attribute>
</tag>
</taglib>
在Jsp中使用
<%@page pageEncoding="UTF-8" isELIgnored="false" %>
<%@taglib uri="/WEB-INF/tld/dateTagSimple.tld" prefix="ds"%>
当前系统时间:<ds:date_s/>
使用EL表达式
<ds:date_s value="${xxx}"/>
编辑于2018-09-29
- 去第 页