jsp 自定义标签实例

践踏V誓言

践踏V誓言

2016-02-19 09:43

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐jsp 自定义标签实例,赶紧看过来吧!
分三步:
一、在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
展开更多 50%)
分享

猜你喜欢

jsp 自定义标签实例

Web开发
jsp 自定义标签实例

JSP 自定义标签

Web开发
JSP 自定义标签

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JSP 自定义标签之一 简单实例

Web开发
JSP 自定义标签之一 简单实例

JSP的自定义标签

Web开发
JSP的自定义标签

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

jsp 自定义分页标签

Web开发
jsp 自定义分页标签

JSP自定义标签试验

Web开发
JSP自定义标签试验

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

基于java math API 的详细解释说明

基于java math API 的详细解释说明

BBS(php & mysql)完整版(四)

BBS(php & mysql)完整版(四)
下拉加载更多内容 ↓