一、什么是Taglib?
如果你曾使用JSP页面来作为渲染视图的话,我相信你对JSTL标签库一定不会感到陌生。
比如:
1.forEach代码片段
`update_date` bigint(13) NOT NULL DEFAULT '0' COMMENT '更新时间',
2.对应的Java类中的格式(Long )为:
protected Long update_date;
public Long getUpdate_date() {
return update_date;
}
public void setUpdate_date(Long update_date) {
this.update_date = update_date;
}
3.JSP页面中显示的格式为:
这种情况下,JSTL就“黔驴技穷”了,我们需要新增一种function来实现它。
第一步,Java端新建格式化方法
package com.cmower.common.util;
public class DateUtil {
public static final String PATTERN_STANDARD = "yyyy-MM-dd HH:mm:ss";
public static String formatTime(Long time) {
if (time == null) {
return " - ";
}
if (time == 0L) {
return " - ";
}
Date date = new Date(time);
SimpleDateFormat formatter = new SimpleDateFormat(PATTERN_STANDARD);
return formatter.format(date);
}
}
第二步,把formatTime方法的使用权限传递给JSP页面
首先,新建fns.tld文件,目录如下:
内容如下:
jsptaglibrary_2_0.xsd">
server function library
1.0
fns
https://localhost/fns
转码long型日期值
formatTime
com.cmower.common.util.DateUtil
java.lang.String formatTime(java.lang.Long)
${fns:formatTime(long)}
fns定义该taglib的前缀为fns; formatTime定义该taglib的function名为formatTime; com.cmower.common.util.DateUtilfunction的类名; java.lang.String formatTime(java.lang.Long)function关联Java端的方法名。
然后,我需要把该自定义标签库导入到对应的JSP页面中:
通过以下代码调用它:
${fns:formatTime(update_date)}
通过以上步骤就能够完成自定义Taglib了,小技能,大功效。