在目录:’Web服务器\WEB-INF\tags‘ 下创建存放xxx.tag的tag文件
demo:
jsp页面:
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!-- 使用<taglib>指令标记引入该Web服务目录下的标记库,只有这样,JSP页面才可以使用Tag标记调用相应的Tag文件。<taglib>指令的格式如下: <%@ taglib tagdir="自定义标记库的位置" prefix="前缀"> --> <%@taglib tagdir="/WEB-INF/tags" prefix="beijing" %> <%@taglib tagdir="/WEB-INF/tags/geng" prefix="dalian" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body bgcolor="cyan"> <h3>以下是调用Tag文件的效果:</h3> <beijing:AddSum /> <h3>以下是调用Tag文件的效果:</h3> <dalian:EvenSum /> </body> </html>
tag文件
<%@ tag language="java" pageEncoding="UTF-8"%> <p>这是一个Tag文件,负责计算1~100内的奇数之和:</p> <% int sum=0, i=1; for(i=1;i<=100;i++) { if(i%2==1) sum=sum+i; } out.println(sum); %>
<%@ tag language="java" pageEncoding="UTF-8"%> <p>这是一个Tag文件,负责计算1~100内的偶数之和:</p> <% int sum=0; int i=1; for(i=1;i<=100;i++){ if(i%2==0){ sum=sum+i; } } out.println(sum); %>
<body bgcolor="yellow"><p> <% int size=1; for(int i=1;i<=3;i++) { size=size+1; %> <font size="<%=size %>"> <!--一下的代码表示页面的文字将传入进来--> <jsp:doBody /> </font> <% }%> <p> </body>
较复杂的tag文件,仅供参考:
<%@ tag import="com.mip.core.util.MipConfig"%> <%@ tag language="java" pageEncoding="UTF-8"%> <%@tag import="com.mip.core.security.objects.Loginer,com.mip.core.basebiz.view.web.controller.control.grid.vo.JqgridParam,java.util.List,java.util.Map,java.util.HashMap,java.util.Map.Entry,com.mip.common.dictionary.service.impl.DictionaryServiceImpl,com.mip.core.basebiz.dto.DataRecord"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="mip" tagdir="/WEB-INF/tags" %> <%-- 必填字段 --%> <%@ attribute name="divId" required="true"%> <%@ attribute name="colName" fragment="true" description="在mip:column中定义"%> <%@ attribute name="cols" fragment="true" description="在mip:column中定义"%> <%@ attribute name="url" description="表格列表数据请求URL地址" required="true"%> <%-- 可选字段 --%> <%@ attribute name="sortname" description="表格排序的列"%> <%@ attribute name="idColumn" description="主键字段名称"%> <%@ attribute name="pager" description="表格底部页脚id,如果为空,没有页脚,没有翻页"%> <%@ attribute name="pagerWithContent" description="表格底部通用查询、刷新、收缩/展开搜索栏是否带文字, 默认为false不带,true的时候追加文字"%> <%@ attribute name="caption" description="表格的名字"%> <%@ attribute name="rowNum" description="默认为20 整型数字"%> <%@ attribute name="sortorder" description="排序方式"%> <%@ attribute name="filterToolbar" description="顶部搜索栏true|false"%> <%@ attribute name="filterToolbarSearchType" description="顶部搜索栏搜索类型,默认为bw(以XX开头), 可选值:eq,ne,bw,bn,cn,nc,ew,en,nu,nn 对应的意思:'相等','不等', '开始于', '不开始于','like %%','not like %%', '结束于','不结束于','为空','不为空'] "%> <%@ attribute name="toggleFilterToolbar" description="在底部增加隐藏/显示顶部搜索栏的按钮"%> <%@ attribute name="edit" description="是否显示编辑按钮 true|false"%> <%@ attribute name="add" description="是否显示新增按钮 true|false"%> <%@ attribute name="del" description="是否显示删除按钮 true|false"%> <%@ attribute name="editurl" description="增删改存储地址url"%> <%@ attribute name="initEdit" description="进入表格之后就初始化列为可编辑状态,默认为false,为true时生效"%> <%@ attribute name="rownumbers" description="是否显示行数 true|false"%> <%@ attribute name="width" description="表格宽度 此字段废弃,所有表格都会取自己父容器的宽度,如果要设置该表格的宽度,使用div或其他标签抱住表格,然后设置父容器的宽度"%> <%@ attribute name="autowidth" description="是否自动调整宽度为父级的宽度true|false, 此字段废弃,所有继承系统模板的jsp页面中的表格都会自适应宽度为父容器的宽度"%> <%@ attribute name="noautowidth" description="是否自动调整宽度为父级的宽度true|false, 此字段废弃,所有继承系统模板的jsp页面中的表格都会自适应宽度为父容器的宽度"%> <%@ attribute name="height" description="表格高度"%> <%@ attribute name="multiselect" description="多选框"%> <%@ attribute name="multiboxonly" description="默认为true只有选择checkbox时才选中此行,设置false时点击记录时就会选中此行"%> <%@ attribute name="singleselect" description="单选框"%> <%@ attribute name="gridComplete" description="表格完成之后的回调"%> <%@ attribute name="onSelectRow" description="选择某行之后触发的事件,方法声明原型onCellSelect(rowid,status)"%> <%@ attribute name="onCellSelect" description="点击单元格触发的实际, 要把edit属性设置为false,否则不起作用.方法声明原型onCellSelect(rowid,iCol,cellcontent,event)"%> <%@ attribute name="autoComplete" description="true|false 为true时打开列搜索的自动匹配 已废弃"%> <%@ attribute name="tableName" description="自动匹配的表名称,在头部搜索栏的自动设值中会用到"%> <%@ attribute name="rownumbersClick" description="序号点击时触发的js函数名字,调用时会传递当前行的rowid"%> <%@ attribute name="shrinkToFit" description="自动调整表格的列宽度适应表格整体宽度,默认为true, 自动调整后的宽度为:(列当前设置宽度/所有列设置的宽度 )*表格的宽度 当表格列较多时设置为false时使用列自己指定的宽度数值,此参数主要针对列较多的情况"%> <%@ attribute name="isKeepParam" description="是否在返回时保持表格参数 ,默认为保存,"%> <!-- 分组参数 --> <%@ attribute name="grouping" description="分组显示 true|false 默认false 分组显示时不会自动生成序号"%> <%@ attribute name="groupField" description="分组列的Field名字,多个用,隔开,分组显示时的必填项"%> <%@ attribute name="groupColumnShow" description="是否显示分组的列 true|false,默认是false,多个使用,隔开"%> <%@ attribute name="groupText" description="显示的分组标题格式"%> <%@ attribute name="groupCollapse" description="默认是否展开,默认是true"%> <%@ attribute name="groupOrder" description="分组显示 排序方式 asc|desc 默认desc"%> <!-- 树参数 --> <%@ attribute name="treeGrid" description="是否包含树节点"%> <%@ attribute name="expandColClick" description="是否点击时打开"%> <%@ attribute name="expandColumn" description="父节点列名称"%> <%@ attribute name="jqOption" description="自定义jqgrid对象"%> <%@ attribute name="setFrozenColumns" description="是否冻结表头,默认为false, bug如果设置了单选,多选冻结表头都会不正常,跟他的实现机制有关,如果单元格出现换行表头会无法对其"%> <%@ attribute name="userDataOnFooter" description="汇总"%> <%@ attribute name="footerrow" description="汇总"%> <%@ attribute name="gridview" description="加快表格解析速度,默认为true,注意,如果使用treeGrid, subGrid and afterInsertRow (event)那么需要把gridview设为false"%> <c:if test="${empty pagerWithContent}"> <c:set var="pagerWithContent" value="true" /><%-- 设置默认值 --%> </c:if>
Tag文件中经常使用的指令有:
tag、taglib、include、attribute、variable
Tag指令的语法如下:
<%@ tag 属性1="属性值" 属性2="属性值" … 属性n="属性值" %>
Tag指令可以操作的属性有:
body-content、language、import、pageEncoding。
例如:
<%@ tag import="com.mip.core.util.MipConfig"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ attribute name="colName" fragment="true" description="在mip:column中定义"%>
相关推荐
在Java技术中,标记库通常以TLD(Tag Library Descriptor)文件的形式存在,这些文件描述了标签的行为、属性和事件处理。 标记库的使用大大提高了JSP页面的可维护性和可重用性,因为它们将业务逻辑和视图层分离。...
【Tag文件与Tag标记】是网站开发设计中的一个重要概念,主要应用于Java服务器页面(JSP)技术中,用于实现自定义标签库。Tag文件是一种特殊类型的文本文件,它们以`.tag`为扩展名,功能类似于JSP文件,但用户无法...
Java自定义标签是JSP开发中的一个重要特性,它允许开发者扩展JSP页面的功能,通过创建自己的标签库来封装复杂逻辑或常见操作。本教程将详细讲解如何创建和使用自定义标签。 首先,JSP中的标签库是实现自定义功能的...
Java自定义标签的开发与应用主要涉及到JSP(JavaServer Pages)技术的扩展能力,允许开发者根据特定需求创建自己的标签库。在JSTL(JavaServer Pages Standard Tag Library)提供的核心、国际化、数据库和XML标签库...
这两个类由JSP容器提供,它们包含处理JSP页面与自定义标签之间交互所需的方法。选择继承哪个基类取决于标签是否需要处理内部内容(body)。如果标签需要包含内容,比如`<c:forEach>`,则应继承`BodyTagSupport`;...
自定义标签通常由三部分组成:标签处理类、TLD(Tag Library Descriptor)文件和标签库导入声明。标签处理类负责处理标签逻辑,TLD文件描述了标签的元数据,如标签名称、属性、事件等,而导入声明则将标签库引入到...
Java自定义注解是Java平台...以上就是关于Java自定义注解、标签库、监听器和JUnit简单测试的知识点概述。这些技术是构建可扩展、可维护的Java应用程序的关键组成部分,理解并熟练运用它们能够提升代码质量和开发效率。
public int doStartTag() throws JspException { HttpServletRequest request; // 是TagSupport类中定义的一个属性,它是javax.servlet...当然其原因是我们的简单日期标记没有正文。 return Tag.SKIP_BODY; }
在JavaServer Pages (JSP)技术中,...标记处理类负责处理标签的逻辑,而TLD文件提供了元数据,将自定义标签与处理类关联起来。这个过程使得开发者可以创建具有特定功能的可重用组件,增强JSP页面的灵活性和可维护性。
2. 创建TLD(Tag Library Descriptor)文件:这是描述自定义标签库的元数据,包含标签的名称、属性、关联的处理类等信息。 3. 引入TLD到JSP页面:在JSP页面中通过`<%@ taglib %>`指令引入TLD,使得页面可以使用...
4. 标签处理类(Tag Handle Class):处理类是Java类,通常继承自TagSupport或实现了SimpleTag接口,负责实现自定义标签的功能。 二、自定义JSP标签的格式: 1. 使用自定义标签需要指定标签库的前缀(Prefix),前缀...
在实际开发中,自定义JSP标签常常与Servlet容器中的标签库实现结合,如Apache的Catalina和Tomcat中的JSTL(JavaServer Pages Standard Tag Library)。JSTL提供了一套标准的标签,如`<c:forEach>`和`...
在TLD文件中,你需要为每个自定义标签定义一个`<tag>`元素,并在其中指定`<name>`、`<tag-class>`和`<attribute>`等子元素。 6. **在JSP页面中使用自定义标签**:最后,在JSP页面中使用`<%@ taglib %>`指令导入标签...
要创建自定义标签,我们需要定义一个标签处理类,然后在TLD(Tag Library Descriptor)文件中注册这个类,最后在JSP页面上使用自定义标签。这样,开发者可以将HTML和Java代码分离,遵循MVC(Model-View-Controller)...
1. **标签库描述文件(TLD, Tag Library Descriptor)**:这是一个XML文件,定义了自定义标签的元数据,包括标签名称、属性、返回类型等。例如,一个简单的TLD可能包含如下内容: ```xml <taglib xmlns="http://...
自定义标记的概念是基于XML的思想,通过自定义标签库(Tag Library)来实现,它使得代码更加结构化,易于维护,同时降低了视图层与业务逻辑的耦合度。 首先,我们要理解自定义标记的工作原理。在JSP中,自定义标记...
自定义标签通过TLD(Tag Library Descriptor)文件进行定义,描述了标签的属性、行为和关联的Java类。 1. **TLD文件详解**: TLD文件是XML格式,用于声明自定义标签的元数据。它包含以下关键元素: - `<tag>`:...
在Java Web开发中,自定义标签库(Custom Tag Library)是一种强大的工具,它允许开发者创建可重用的组件,提高代码的可维护性和可读性。这篇博客文章“将定制标签库开发为标记文件”深入探讨了如何创建自己的标签库...
4. **部署标签库**:将自定义标签打包成 `.jar` 文件,并配置相应的 `tld` 文件。 5. **使用标签**:在JSP页面中引入标签库,并使用自定义标签。 #### 六、总结 自定义标签为JSP页面带来了极大的灵活性和可扩展性...
每个标签库都通过一个TLD(Tag Library Descriptor)文件来描述,这个文件是XML格式,包含了标签的元数据,如标签名称、对应的Java类、属性等。 **3. 标签处理类** 每个自定义标签对应一个Java类,这个类负责处理...