濮阳杆衣贸易有限公司

主頁 > 知識庫 > jsp 自定義標簽實例

jsp 自定義標簽實例

熱門標簽:甘肅銷售電銷機器人公司 福建電銷貓機器人收費 四川正規(guī)外呼系統(tǒng)軟件 智能電話機器人銷售話術(shù) 山東ai外呼電銷機器人好用嗎 湖北地圖標注公司 外呼直播語音系統(tǒng) 汝南縣地圖標注app 地圖標注專業(yè)和非專業(yè)
分三步:
一、在WEB-INF 下建一個名為tlds的文件夾,再建一個tld文件,如 formatTime.tld,內(nèi)容為:
復(fù)制代碼 代碼如下:

?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>
tlibversion>1.0/tlibversion>
jspversion>1.1/jspversion>
shortname>ntuc/shortname>
tag>
name>formatTimeAsString/name>
tagclass>com.ufinity.taglibTest.FormatTimeTag/tagclass>
bodycontent>empty/bodycontent>
attribute>
name>timestamp/name>
/attribute>
attribute>
name>format/name>
/attribute>
attribute>
name>showTH/name>
/attribute>
attribute>
name>style/name>
/attribute>
/tag>
/taglib>

二、建一個class,內(nèi)容為:
復(fù)制代碼 代碼如下:

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 timest
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 = timest
}
}

三、建個jsp頁面測試下:
復(fù)制代碼 代碼如下:

%@ 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>
轉(zhuǎn)換“20090403132233”
/p>
format:dd MMMM yyyy showTH:true style:Upper 轉(zhuǎn)換后為:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Upper"/>br/>
format:dd MMMM yyyy showTH:true style:Lower 轉(zhuǎn)換后為:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style="Lower"/>br/>
format:dd MMMM yyyy showTH:false style:Upper 轉(zhuǎn)換后為:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="false" style="Upper"/>br/>
format:dd MMMM yyyy showTH:true style:"" 轉(zhuǎn)換后為:tf:formatTimeAsString timestamp="20090403132233" format="dd MMMM yyyy" showTH="true" style=""/>br/>
/body>
/html>

ok了。這里timestamp是一個給定值,如果是通過${}標簽動態(tài)取的話,需要將tld文件的
復(fù)制代碼 代碼如下:

attribute>
name>timestamp/name>
/attribute>

修改為
復(fù)制代碼 代碼如下:

attribute>
name>timestamp/name>
rtexprvalue>true/rtexprvalue>
/attribute>
您可能感興趣的文章:
  • JSP 自定義標簽
  • JSP 自定義標簽之一 簡單實例
  • JSP自定義標簽Taglib實現(xiàn)過程重點總結(jié)
  • 基于JSP 自定義標簽使用實例介紹
  • jsp自定義標簽技術(shù)(實現(xiàn)原理與代碼以及平臺搭建步驟)
  • JSP自定義標簽獲取用戶IP地址的方法
  • jsp簡單自定義標簽的forEach遍歷及轉(zhuǎn)義字符示例
  • JSP自定義標簽rtexprvalue屬性用法實例分析
  • JSP自定義標簽案例分析

標簽:吳忠 昌都 臨沂 白銀 梅州 南充 黔東 肇慶

巨人網(wǎng)絡(luò)通訊聲明:本文標題《jsp 自定義標簽實例》,本文關(guān)鍵詞  jsp,自定義,標簽,實例,jsp,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《jsp 自定義標簽實例》相關(guān)的同類信息!
  • 本頁收集關(guān)于jsp 自定義標簽實例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    岳池县| 平阴县| 内乡县| 玛纳斯县| 清水河县| 岱山县| 怀化市| 渑池县| 蒙城县| 莱西市| 云霄县| 平顶山市| 资溪县| 峨山| 衡山县| 河曲县| 疏附县| 商丘市| 临安市| 眉山市| 浙江省| 株洲市| 阿勒泰市| 调兵山市| 临朐县| 遂平县| 黑水县| 五指山市| 陕西省| 黄龙县| 宝鸡市| 广东省| 广丰县| 民县| 吐鲁番市| 琼结县| 华安县| 商洛市| 东辽县| 上饶县| 三亚市|