java标签库 taglib pdf格式_JSP标签库Taglib之自定义function篇,轻松实现日期格式化...

一、什么是Taglib?

如果你曾使用JSP页面来作为渲染视图的话,我相信你对JSTL标签库一定不会感到陌生。

比如:

1.forEach代码片段

Item

1

2

3

2.formatNumber 代码片段

1

3.fn:length代码片段

${fn:length(string1)}

1

在我写代码的过程中,以上三种类型的JSTL标签使用频率最高。

它们分别是

核心标签

格式化标签

JSTL函数

JSTL标签库可通过以下方式进行导入。

1

2

标签库(tag library),是指由在JSP页面中使用的标记所组成的库。JSP容器推出时带有一个小型的、默认的标记库。JSTL是其中一种,最为常用。

二、自定义function

在实际的应用当中,JSTL并不能完全满足我们的需求,所以我们要能够实时的对其进行扩展。

有这样一种场景。

1.数据库中更新日期的数据格式(bigint型,13位长度。)如下:

`update_date` bigint(13) NOT NULL DEFAULT '0' COMMENT '更新时间',

1

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;

}

1

2

3

4

5

6

7

8

3.JSP页面中显示的格式为:

12c40ad74ad34ccd40d7bd6a4f6ef4fe.png

这种情况下,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);

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

第二步,把formatTime方法的使用权限传递给JSP页面

首先,新建fns.tld文件,目录如下:

6b7fa3d1faf98eea4a8e68e3249bc1ab.png

内容如下:

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">

server function library

1.0

fns

http://localhost/fns

转码long型日期值

formatTime

com.cmower.common.util.DateUtil

java.lang.String formatTime(java.lang.Long)

${fns:formatTime(long)}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

fns定义该taglib的前缀为fns;

formatTime定义该taglib的function名为formatTime;

com.cmower.common.util.DateUtilfunction的类名;

java.lang.String formatTime(java.lang.Long)function关联Java端的方法名。

然后,我需要把该自定义标签库导入到对应的JSP页面中:

1

通过以下代码调用它:

${fns:formatTime(update_date)}

1

通过以上步骤就能够完成自定义Taglib了,小技能,大功效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值