有一次看到同事写的自定义标签,发现是如此的简单。
1,写个.tld放在classpath下,如下,
myselfxu.tld
<?xml version="1.0" encoding="ISO-8859-1" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>Custom Functions</description>
<tlib-version>1.0</tlib-version>
<short-name>xu</short-name>
<uri>/myfunction</uri>
<function>
<name>testMyself</name>
<function-class>com.kuanglong.commons.MySelf</function-class>
<function-signature>java.lang.String testMyself(java.lang.String)</function-signature>
</function>
<function>
<name>encode</name>
<function-class>java.net.URLEncoder</function-class>
<function-signature>java.lang.String encode(java.lang.String,java.lang.String)</function-signature>
</function>
</taglib>
2,java类的代码,
Myself.java
package com.kuanglong.commons;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class MySelf {
public static String testMyself(String ss){
return ss ;
}
final static int ISO_TIME = 0;
final static int ISO_DATETIME = 1;
final static int ISO_DATE = 2;
final static int SLASH_DATETIME = 3;
final static int SLASH_DATE = 4;
final static int NO_SLASH_DATETIME = 5;
final static int NO_SLASH_DATE = 6;
final static int NO_SLASH_DATE_ExcludeYear = 8;
final static int SIMPLE_DATE_ExcludeYear = 9;
static SimpleDateFormat dateFormatDashSecond = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static SimpleDateFormat dateFormatDashDay = new SimpleDateFormat("yyyy-MM-dd");
static SimpleDateFormat dateFormatSlashSecond = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
static SimpleDateFormat dateFormatSlashDay = new SimpleDateFormat("yyyy/MM/dd");
static SimpleDateFormat dateFormatSecond = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
static SimpleDateFormat dateFormatDay = new SimpleDateFormat("yyyyMMdd");
static SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
static SimpleDateFormat dateFormatDashDayExcludeYear = new SimpleDateFormat("MM-dd");
static SimpleDateFormat dateFormatDayExcludeYear = new SimpleDateFormat("MMdd");
public static String dateFormat(Object date,int type){
if(date instanceof Date){
if(type == ISO_TIME){
return timeFormat.format(date);
} else if(type == ISO_DATE){
return dateFormatDashDay.format(date);
} else if(type == SLASH_DATETIME){
return dateFormatSlashSecond.format(date);
} else if(type == SLASH_DATE){
return dateFormatSlashDay.format(date);
} else if(type == NO_SLASH_DATETIME){
return dateFormatSecond.format(date);
} else if(type == NO_SLASH_DATE){
return dateFormatDay.format(date);
}else if(type == NO_SLASH_DATE_ExcludeYear){
return dateFormatDashDayExcludeYear.format(date);
}else if(type == SIMPLE_DATE_ExcludeYear){
return dateFormatDayExcludeYear.format(date);
} else{//type == ISO_DATETIME
return dateFormatDashSecond.format(date);
}
} else if(date instanceof Calendar){
return dateFormat(((Calendar)date).getTime(),type);
} else
return "";
}
}
3,jsp上引用自己定义的标签。。
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib prefix="myfn" uri="/myfunction" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
${myfn:testMyself("时的方式方式来得及浮士德了家里开始就")}
<body>
</body>
</html>
分享到:
相关推荐
**JSTL自定义标签实例解析** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP开发。JSTL允许开发者使用预定义的标签来处理常见任务,如迭代、条件判断、XML处理等。本文将深入讲解...
JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...
JSTL自定义标签允许开发者扩展标准标签库的功能,满足特定需求。自定义标签由三部分组成:标签库描述符(TLD),标签处理类(Tag Handler Class)以及标签体(Tag Body)。 1. **标签库描述符(TLD)**:这是一个XML...
开发自定义标签是扩展JSTL功能的一个重要方式。自定义标签可以封装复杂的业务逻辑,使得JSP页面更加简洁。以下是一些关键步骤: 1. **创建标签处理类(Tag Handler Class)**:自定义标签的核心是Java类,它实现了`...
**JSTL自定义标签详解** JavaServer Pages Standard Tag Library(JSTL)是用于简化JSP开发的一个标准标签库,它将常见的JSP代码片段封装成了可重用的标签,提高了代码的可读性和可维护性。在JSTL中,我们可以...
在这个压缩包中,包含的是关于JSTL自定义标签的开发实例源码,对于正在学习JavaWeb技术的开发者来说,这是一个非常有价值的参考资料。 首先,我们要理解JSTL的基本概念。JSTL主要由五个核心部分组成:Core、XML、...
综上所述,JSTL自定义标签是JSP开发中的一个重要工具,它允许我们创建可复用、模块化的代码,提高代码质量,同时也降低了维护成本。通过理解和实践自定义标签的创建和使用,可以提升我们在Web应用开发中的专业能力。
在JavaWeb开发中,自定义标签库和JSTL(JavaServer Pages Standard Tag Library)是两个重要的组件,它们极大地提高了代码的可读性和可维护性。本教程将深入探讨这两个主题,帮助开发者更好地理解和应用它们。 一、...
4. **在JSP页面中使用自定义标签**:完成以上步骤后,就可以在JSP页面中像使用标准JSTL标签一样使用自定义标签了。 例如,假设我们有一个名为`myTag`的自定义标签,其处理类为`com.example.MyTag`,在TLD文件中定义...
JSTL中的某些标签功能可能与自定义标签重复,但在实际开发中,两者常常结合使用,互补不足。例如,自定义标签可以处理特定业务逻辑,而JSTL则负责通用的控制流、迭代和I/O操作。 总结,通过自定义标签,我们可以...
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
在Java Web开发中,JSTL(JavaServer Pages Standard Tag Library)是一个标准的标签库,它提供了一系列的标签来简化JSP页面中的编程工作。EL(Expression Language)是JSP 2.0引入的一种轻量级的脚本语言,用于在...
自定义标签是JSP标准标签库(JSTL)的一种扩展,它能将复杂的业务逻辑封装起来,使JSP页面更加简洁。本篇文章将深入探讨自定义标签的概念、工作原理以及如何创建和使用它们。 一、自定义标签概述 自定义标签可以...
从JSP 1.1规范开始JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性,因此自定义标签在WEB应用中被广泛使用。许多WEB应用厂商都开发出了自己的一套标签库提供给用户使用...
自定义标签的开发涉及到JSP、Servlet、XML解析等多个领域的知识,理解并熟练运用自定义标签可以极大地提升Java Web项目的开发效率和质量。在实际项目中,常见的应用包括表单处理、数据展示、国际化等复杂场景,通过...
在Java Web项目开发中,自定义标签(Custom Tags)是一个重要的技术点,它极大地提高了代码的可读性和可维护性。自定义标签是JSP(JavaServer Pages)的一部分,允许开发者创建自己的视图组件,就像HTML标签一样,但...
在实际开发中,自定义标签通常与Expression Language (EL) 和JSTL结合使用,可以处理更复杂的逻辑和数据绑定。自定义标签也可以通过继承已有的标签库,比如JSTL的`fmt`或`c`标签,进一步扩展其功能。 总之,理解和...
下面我们将详细探讨JSTL自定义函数的开发步骤、使用方法以及JSTL提供的标准函数。 首先,开发自定义函数主要分为以下几步: 1. **创建Java类**:你需要定义一个Java类,该类包含你需要在EL表达式中调用的静态方法...
在JSP页面中,自定义标签就像使用JSTL或Struts标签一样,通过`<myTag:tagName attribute1="value1" attribute2="value2">`的形式调用。对于有标记体的标签,还可以传递内容。 **6. 示例:创建简单无标记体的标签** ...
在Java Web开发中,自定义标签和自定义JSTL(JavaServer Pages Standard Tag Library)函数是提升代码可复用性和可维护性的重要工具。它们允许开发者创建自己的语义化标签,以替代复杂的Java脚本或者JSP标签,使得...