jsp 自定义标签实例

2016-02-19 09:43 7 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐jsp 自定义标签实例,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

分三步:
一、在WEB-INF 下建一个名为tlds的文件夹,再建一个tld文件,如 formatTime.tld,内容为:
代码如下:

?xml version="1.0" encoding="ISO-8859-1" ?
!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"
taglib
tlibversion1.0/tlibversion
jspversion1.1/jspversion
shortnamentuc/shortname
tag
nameformatTimeAsString/name
tagclasscom.ufinity.taglibTest.FormatTimeTag/tagclass
bodycontentempty/bodycontent
attribute
nametimestamp/name
/attribute
attribute
nameformat/name
/attribute
attribute
nameshowTH/name
/attribute
attribute
namestyle/name
/attribute
/tag
/taglib

二、建一个class,内容为:
代码如下:

package com.ufinity.taglibTest;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import javax.servlet.jsp.tagext.TagSupport;
/**
* Description of the class
*
* @author Wangqy
* @version 1.0
* @since 2009-8-25
*/
public class FormatTimeTag extends TagSupport {
/**
* serialVersionUID long
*/
private static final long serialVersionUID = 8757501937718830491L;
private String timestamp;
private String format;
private String showTH;
private String style;
public int doEndTag()
{
try
{
String info = this.convertDateTime(timestamp, format, Boolean.parseBoolean(showTH), style);
pageContext.getOut().println(info);
}
catch (IOException e) {
}
return EVAL_PAGE;
}
private String convertDateTime(String dateTime, String formater, boolean showTH, String caseStyle) {
String timePosted = null;
SimpleDateFormat dateFm = null;
DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
Date formatTime = null;
try {
formatTime = format.parse(dateTime);
} catch (ParseException e) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(formatTime);
if (showTH) {
int day = calendar.get(Calendar.DAY_OF_MONTH);
String daySuffix = "th";
if ((day % 10) == 1) {
daySuffix = ((day / 10) == 1) ? "th" : "st";
} else if ((day % 10) == 2) {
daySuffix = (day == 12) ? "th" : "nd";
} else if ((day % 10) == 3) {
daySuffix = (day == 13) ? "th" : "rd";
}
formater = formater.substring(0, formater.indexOf(" ")) + "'"
+ daySuffix + "'"
+ formater.substring(formater.indexOf(" "));
dateFm = new SimpleDateFormat(formater, Locale.ENGLISH);
} else {
dateFm = new SimpleDateFormat(formater, Locale.ENGLISH);
}
timePosted = dateFm.format(formatTime);
if (caseStyle.equals("Upper")) {
timePosted = timePosted.toUpperCase();
} else if (caseStyle.equals("Lower")) {
timePosted = timePosted.toLowerCase();
}
return timePosted;
}
public void setFormat(String format) {
this.format = format;
}
public void setShowTH(String showTH) {
this.showTH = showTH;
}
public void setStyle(String style) {
this.style = style;
}
public void setTimestamp(String timestamp) {
this.timestamp = timestamp;
}
}

三、建个jsp页面测试下:
代码如下:

%@ page language="java" pageEncoding="utf-8"%
%@ taglib uri="WEB-INF/tlds/formatTime.tld" prefix="tf" %
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312" /
title自定义标签示例/title
/head
body
p
转换“20090403132233”
/p
format:dd MMMM yyyy showTH:true style:Upper 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Upper"/br/
format:dd MMMM yyyy showTH:true style:Lower 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Lower"/br/
format:dd MMMM yyyy showTH:false style:Upper 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="false" style="Upper"/br/
format:dd MMMM yyyy showTH:true style:"" 转换后为:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style=""/br/
/body
/html

ok了。这里timestamp是一个给定值,如果是通过${}标签动态取的话,需要将tld文件的
代码如下:

attribute
nametimestamp/name
/attribute

修改为
代码如下:

attribute
nametimestamp/name
rtexprvaluetrue/rtexprvalue
/attribute

来源:http://www.tulaoshi.com/n/20160219/1591838.html

延伸阅读
标签: 办公软件
一、认识VBA 在介绍自定义函数的具体使用之前,不得不先介绍一下VBA,原因很简单,自定义函数就是用它创建的。VBA的全称是Visual Basic for Application,它是微软最好的通用应用程序脚本编程语言,它的特点是容易上手,而且功能非常强大。 在微软所有的 Office 组件中,如 Word 、Access、Powerpoint等等都包含VBA,如果你...
标签: Web开发
如果能在自己的网页中使用自定义的标签是不是很酷呢,比如用你的网站的域名、用你的网名、用你所爱的人的名字来定义HTML标签并内嵌到网页中,本文就介绍一下这方面的内容。 本文以我的网名的拼音为例来自定义HTML标签。 网名:龙犊,拼音:longdu 首先需要在html标签中进行这样的申明:html xmlns:longdu,xmlns即xml name spac...
《死侍》自定义键位心得完美自定义键位 方式1: Q作为传送反击键,鼠标左键轻击,右键重击,中键开枪,E键瞄准放大,R重装和互动,ZXC分别对应键盘的轻枪重,其他不变。 鼠标左键轻击,右键重击,中键开枪,这个几乎没什么可说的。 ZXC的定义是不想占用其他键位,再就是方便看刚开始了解连招,也比较形象和对称,有时还可以用来释放动...
PowerPoint借助自定义形状实现填充自定义图片   具体如何操作呢?以powerpoint2007为例,先在PPT页面中画一Tulaoshi.Com个形状,就像下面这个圆: 然后在形状填充里面选择图片或纹理填充: 插入自文件,选择想要的图片就OK了,就会出现下面的效果: 同样的效果还可以应用于艺术字(文本框不行)。如下: ...
--------------------------------------------------- -------自定义的TShockwaveflash.ocx---------------- --------------------------------------------------- --------------------------------------------------- 添加功能:对鼠标在 flash.ocx 中的信息捕获.---------- --------------------------------------------------- 可捕获鼠...

经验教程

209

收藏

43

精华推荐

Authorware:自定义按钮

Authorware:自定义按钮

樊西不慌

自定义 CRichEditCtrl 控件

自定义 CRichEditCtrl 控件

岫岩轨迹

javaScript自定义绑定

javaScript自定义绑定

半块红苹果_

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部