首先是要有一个标签处理类,标签处理类可以直接实现Tag接口,也可以继承JAVA中已经实现了的TagSupport这个类,TagSupport也是继承自Tag接口的,它内部已经对Tag接口进行了实现,一般是继承TagSupport类,之后是重写父类的doStartTag和doEndTag方法,
对于开始标签来说返回值主要有EVAL_BODY_INCLUDE和SKIP_BODY,前者表示执行标签体,后者表示略过标签体;
对于结束标签的返回值主要有两种EVAL_PAGE和SKIP_PAGE,前者表示继续执行结束标签以后的内容,后者表示忽略结束标签以后的内容;另外,在继承自TagSupport类的标签处理类里面还有两个隐含的属性,一个是parent,表示该标签上层标签的处理类,另外一个是pageContext,pageContext是为了方便我们使用的WEB元素而引入的一个属性,像HttpSession之类的;实现了Tag接口的类也可以使用这两个隐含属性,只需要实现其中的setParent()方法和setPageContext()方法就可以了。
下面是一个标签处理类的代码式样:
public class MyTag extends TagSupport { private String prop1; private String prop2; /** * */ private static final long serialVersionUID = -8771409930058657336L; @Override //对于结束标签的返回值主要有两种EVAL_PAGE和SKIP_PAGE,前者表示继续执行结束标签以后的内容,后者表示忽略结束标签以后的内容; public int doEndTag() throws JspException { // TODO Auto-generated method stub //这里面可以处理自己的逻辑,然后选择返回值,如果不处理,调用super.doEndTag()则会返回EVAL_PAGE // return EVAL_PAGE; // return SKIP_PAGE; return super.doEndTag(); } @Override /** * 对于开始标签来说返回值主要有EVAL_BODY_INCLUDE和SKIP_BODY,前者表示执行标签体,后者表示略过标签体 */ public int doStartTag() { // TODO Auto-generated method stub //同样这里面也是执行自己的逻辑,然后来决定是要显示标签体 //可以使用两个内部属性,parent和pageContext if (yourCondition) return EVAL_BODY_INCLUDE; else return SKIP_BODY; } //省略get和set方法 }
接下来是要在WEB-INF下面新建.tld文件,名称随便取,这个tld文件是对标签库的描述,包括该标签库里面包括哪些标签和和方法,以及对标签属性等的描述,有了这个文件以后,在WEB服务器启动的时候,系统就会将该文件加载,然后当在页面上使用该标签库的时候系统就会到已经在WEB-INF目录下加载的tld文件里面去找相应的标签库,如果没有则会出错!
下面是tld文件的一个样式:
<?xml version="1.0" encoding="UTF-8" ?> <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"> <tlib-version>1.0</tlib-version><!-- 版本号 --> <short-name>my</short-name><!-- 名称随便取 --> <uri>http://www.test.com/core</uri><!-- 这个uri即在页面上进行引入的时候的uri --> <function><!-- 这是对方法的定义,对方法的定义比较简单,只要该方法是公共的并且是静态的就可以了,该类也不需要继承什么类和接口 --> <name>funcTest</name><!-- 方法名 --> <function-class>com.test.util.Util</function-class><!-- 方法所在的类 --> <!-- 方法的一些信息,boolean表示返回类型, funcName表示方法名,后面是参数类型,对于其他非基本类型的数据一定要用全称,如java.lang.String--> <function-signature>boolean funcName(int,int,int)</function-signature> </function> <tag> <name>tagName</name><!-- 标签名称,在使用的时候以前缀加这个名称使用的 --> <tag-class>com.test.web.tag.MyTag</tag-class><!-- 标签类 --> <attribute> <name>prop1</name><!-- 标签类里面的属性名称 --> <required>true</required><!-- 是否必须有 --> </attribute> <attribute> <name>prop2</name> <required>true</required> </attribute> </tag> </taglib>
之后就可以在页面上直接引入该标签库使用自定义的标签了:
如:
<%@taglib prefix="my" uri="http://www.test.com/core" %> //使用<my:myTag prop1="" prop2="">content</my:myTag>
对于自定的方法的使用则是要利用jstl来使用:
在导入了jstl的标签以后,可以这样使用:
${my:funcName(arg0,arg1,arg2)},这个参数的类型是需要匹配的,
相关推荐
在JavaServer Pages (JSP) 技术中,自定义标签是扩展JSP功能的关键手段,它允许开发者创建可重用的组件,提高...在给定的实例中,我们可以看到一个简单的自定义标签的实现和使用过程,涵盖了JSP自定义标签的基本流程。
通过以上内容的学习,我们可以理解JSP自定义标签的基本原理,掌握创建和使用自定义标签的方法,从而提升JSP应用的开发效率和代码质量。在实际项目中,合理利用自定义标签,可以构建出模块化、易于维护的Web应用程序...
下面我们将详细探讨JSP自定义标签和方法的实现与应用。 1. **标签处理类** 创建自定义标签时,首先需要一个标签处理类。这个类可以直接实现`javax.servlet.jsp.tagext.Tag`接口,但通常我们会选择继承`javax....
本教程将深入探讨JSP自定义标签的使用,同时结合实例介绍分页和下拉框绑定值的封装。 一、JSP自定义标签基础 1. **定义标签库(Tag Library)**:自定义标签首先需要定义一个TLD(Tag Library Descriptor)文件,它...
jsp自定义标签jsp自定义标签jsp自定义标签jsp自定义标签
在Java Server Pages (JSP) 2.0版本中,自定义标签和自定义标签函数极大地扩展了JSP开发的灵活性和可重用性。这些特性允许开发者创建可复用的组件,使代码更加清晰,易于维护。本文将深入探讨JSP 2.0中的自定义标签...
总之,JSP自定义标签是提高JSP开发效率和代码复用性的重要工具,通过创建和使用自定义标签,我们可以构建出更加模块化、易于维护的Web应用程序。结合Tomcat这样的Servlet容器,可以快速地部署和测试这些自定义组件。
使用jsp自定义标签的功能实现权限的控制。(如果用户没有某个模块的删除权限,就不现实这个删除按钮) 在整个项目中所有的页面都可以引入自定义的标签去做到权限的控制。 自定义标签文件 删除 可以控制页面中的每...
在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现...理解这些文件的作用和相互关系,对于掌握JSP自定义标签库的开发和应用至关重要。
总的来说,理解和解决`Java.lang.NoClassDefFoundError: JspException`异常需要对JSP自定义标签的工作原理、项目结构以及打包过程有深入的了解。遵循正确的项目配置和打包步骤,能够有效地避免这类问题,保证自定义...
本教程将深入探讨JSP自定义标签的实例与详细讲解。 一、JSP自定义标签概述 JSP自定义标签是类似于HTML标签的自定义组件,但它们提供了更强大的功能,可以封装Java代码,提供复杂的业务逻辑。自定义标签通过TLD(Tag...
总结来说,通过学习和实践JSP自定义标签,我们可以构建高效、灵活的Web应用程序,比如这里的分页系统,它不仅简化了页面的开发,还增强了系统的扩展性和可维护性。在实际项目中,结合良好的设计原则和最佳实践,...
本篇将深入探讨“JSP自定义标签之日期显示”,以及如何通过自定义标签来优雅地处理日期格式化和展示。 首先,我们要理解JSP自定义标签的基本概念。自定义标签是JSP的一种扩展,它不是Java内置的标签,而是由开发者...
首先,我们要理解JSP自定义标签的概念。自定义标签是JSP的一种扩展机制,它允许开发者创建自己的标签库,以更加清晰和可维护的方式编写页面。自定义标签的实现通常涉及三个主要部分:标签库描述符(TLD)、标签处理...
一、JSP自定义标签基础 JSP自定义标签是JSP技术的一部分,它允许开发者创建自己的标签,以扩展HTML或XML文档。这些自定义标签可以封装复杂的Java代码,使JSP页面更加清晰,易于理解和维护。自定义标签由两部分组成:...
本资源“jsp自定义标签大全”包含了一系列示例和详细教程,涵盖了从基础到高级的自定义标签使用方法,对于想要深入了解和掌握JSP自定义标签的开发者来说是一份宝贵的参考资料。通过学习和实践这些示例,你可以更好地...
以下是对JSP自定义标签库的详细解释和使用注意事项: 1. **自定义标签开发步骤** - **编写JAVA类**:你需要创建一个Java类来实现特定的接口,如`javax.servlet.jsp.tagext.TagSupport`或`javax.servlet.jsp.tagext...
综上所述,“权威实用jsp自定义标签demo,checkbox,radio>”教程旨在帮助开发者掌握如何创建和使用与选择器相关的自定义标签,从而提升JSP开发的效率和质量。通过学习这个教程,你可以了解到自定义标签的核心概念、...
通过学习和实践这一技术,开发者可以更好地利用JSP自定义标签的灵活性,提高Web应用的开发效率和质量。同时,了解源码和工具的运用也是提升编程技能的关键,这能帮助我们深入理解底层机制,从而编写出更加高效和可靠...