自定义标签的开发

合集下载

自定义标签的实现过程

自定义标签的实现过程

JSP自定义标签的实现过程来源:2009年02月18日10:12网友评论:0条点击:5602001年接触jsp,当时标签库、N层结构开发、设计模式等j2ee的思想还刚刚萌芽,每个jsp文件就是纯粹的java嵌入代码、javascript、html的混杂,以实现功能为第一要务。

2003年首次接触taglib,对apache组织上的jstl略有了解,但没有真正在项目中使用。

随着struts的流行,jstl的风头已经被盖过,但据说core这个jstl中的标签库使用的还是很多。

本次基于学习的目的,重新体验了一下自定义标签的实现过程。

做一个最简单的自定义标签<mytag:hello/>,效果是打印hello world!1、编写标签处理类HelloTag(实现javax.servlet.jsp.tagext.Tag类)package cn.itcast.tag;import java.io.IOException;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.Tag;public class HelloTag implements Tag {private PageContext pageContext;private Tag tag;public int doEndTag() throws JspException {try {pageContext.getOut().print(\"hello world!\");} catch (IOException e) {e.printStackTrace();}return Tag.EVAL_PAGE;}public int doStartTag() throws JspException {return Tag.SKIP_BODY;}public Tag getParent() {return null;}public void release() {}public void setPageContext(PageContext arg0) {this.pageContext = arg0;}public void setParent(Tag arg0) {this.tag = arg0;}}注意Tag中定义的几个常量的含义(EVAL_PAGE,SKIP_BODY等)2、编写hellotag.tld标签定义文件<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE taglibPUBLIC \"-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN\"\"/dtd/web-jsptaglibrary_1_2.dtd\"><taglib><tlib-version>1.0</tlib-version><jsp-version>1.2</jsp-version><short-name>tagSample</short-name>[Page]<uri>/hellotag</uri><tag><name>hello</name><tag-class>cn.itcast.tag.HelloTag</tag-class><body-content>empty</body-content></tag></taglib>3、编写测试jsp文件<%@ page contentType=\"text/html; charset=GBK\" %><%@ page errorPage=\"error.jsp\" %><%@ taglib uri=\"/WEB-INF/hellotag.tld\" prefix=\"mytag\" %><html><head><title></title></head><body><mytag:hello/><mytag:hello>haha</mytag:hello></body></head>测试结果应该是打印出两个hello world!标签库的优点1、最大限度地消除jsp页面中嵌入的java代码2、增强代码扩展性、可读性、代码复用,简化了jsp页面编写的工作量。

17开发带属性的自定义标签

17开发带属性的自定义标签


标记的属性只能以String的形式传递。对于String属 性,其get/set XXX比较简单,因为Web容器自动进 行映射,如本例中的name 属性。然而对于其他类型 的标记属性,编程者必须在标记处理器中的get/set方 法来添加代码进行手工转换。
JSP视频教学课程
谢谢收看!
JSP 视频教学课程
13.7 开发带属性的自定义标签
JSP 视频教学课程
JSP2.2
开发带属性的自定义标签
自定义标记可以有自己的属性。自定义标记通过属性 来动态接收页面传递来的信息。属性一般在开始标记 中定义,语法为 attr=“value”。

<hello:helloTag name=“John” sex=“male”/> <hello:helloTag name=“John” sex=<%=role%>/>

VSCode代码片段自定义标签

VSCode代码片段自定义标签

VSCode代码片段自定义标签代码片段是提高编码效率的重要工具,在开发过程中能够快速生成常用的代码块,减少重复劳动。

VSCode(Visual Studio Code)作为一款流行的源代码编辑器,提供了丰富的功能和插件,其中之一就是代码片段。

默认情况下,VSCode提供了一些常用的代码片段,例如HTML、CSS和JavaScript等。

但有时候默认的代码片段不能满足开发者的需求,需要自定义代码片段。

自定义代码片段需要为代码片段文件指定特定的语言ID,并使用一种特殊的语法来描述代码片段的内容。

本文将介绍如何在VSCode中自定义代码片段的标签。

在VSCode中,代码片段使用JSON文件的格式进行定义。

为了使代码片段与其他片段区分开来,每个代码片段都需要一个唯一的标识。

这个标识通常由语言ID和代码片段的名称组成。

以下是一个示例代码片段的定义:```json{"helloWorld": {"prefix": "hw","body": ["console.log('Hello, World!');"],"description": "Prints 'Hello, World!' to the console."}}```在上述示例中,代码片段的标识为`helloWorld`,它有一个唯一的前缀`hw`。

在编辑器中输入`hw`,然后按下Tab键,代码片段将会被插入到文档中。

这段代码片段的内容是一个可以输出`Hello, World!`到控制台的JavaScript语句。

通过在JSON文件中定义多个代码片段,我们可以将常用的代码块进行组织和管理。

这样可以大大提高编码效率,减少繁琐的输入。

以下是一个更复杂的示例代码片段定义:```json{"forLoop": {"prefix": "fl","body": ["for (let ${index} = 0; ${index} < ${array}.length; ${index}++) {","\tconst ${element} = ${array}[${index}];","\t$0","}"],"description": "Creates a basic for loop."}}```上述示例代码片段定义了一个名为`forLoop`的代码片段,它的前缀是`fl`。

自定义标签(Custom Tag)

自定义标签(Custom Tag)

一、概述JSP中有一块重要的技术:自定义标签(Custom Tag),最近这几天在学习Struts的时候发现Struts中使用了很多自定义标签,如html、bean等。

所以我就做了个简单的试验,学习一下这种技术。

首先介绍一下这种技术吧!1.优点:取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。

2.开发流程:(1)编写JSP,在JSP中使用自定义标签。

(2)在web.xml中指定JSP中使用的标签的.tld(标签库描述文件)文件的位置。

(3) .tld文件中指定标签使用的类。

3. 自定义标签的分类:(1)简单标签:如< mytag:helloworld/>(2)带属性标签:如<imytag:checkinput dbname = “<myBean.getDBName()>”/>(3)带标签体的标签:在自定义标签的起始和结束标签之间的部分为标签体(Body)。

Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。

<mytag:che ckinput dbname = “<myBean.getDBName()>”><mytag:log message=”Table Name”><mytag:checkinput />(4)可以被Script使用的标签:定义了id和type属性的标签可以被标签后面的Scriptlet使用。

<mytag:connection id = “oraDB” type = “DataSource” name = “Oracle”><%oraDB.getConnection(); %>4.接口及其他实际上,自定义标签的处理类实现了Tag Handler对象。

JSP技术在javax.servlet.jsp.tagext中提供了多个Tag Handler 接口,JSP1.2中定义了Tag、BodyTag、IterationTag接口,在JSP2.0中新增了SimpleTag接口。

第9章 自定义标签的开发

第9章 自定义标签的开发

容器如何查找TLD文件
• 实际上,容器会自动建立一个<uri>名和TLD文件之间的映射。 • 在部署一个Web应用时,只要把TLD文件放在容器会搜索的位置上, 容器就会发现这个TLD,并为标签库建立一个映射。
容器自动搜索的位置包括:
• /WEB-INF目录或其子目录; • /WEB-INF/lib目录下的JAR文件中的META-INF目录或其子目录
编写简单标签处理器通常不是实现SimpleTag接口, 而是继承SimpleTagSupport类。
public class HelloTag extends SimpleTagSupport{ public void doTag() throws JspException, IOException{ JspWriter out = getJspContext().getOut(); out.print("<font color='blue'>Hello, This is simple tag.</font>"); } }
<taglib> <taglib-uri>/WEB-INF/sampleLib.tld</taglib-uri> <taglib-location>/WEB-INF/sampleLib.tld </taglib-location> </taglib>
9.2.2 <tag>元素
<taglib>元素可以包含一个或多个<tag>元素,每个<tag>元 素都提供了关于一个标签的信息,如要在JSP页面中使用的标 签名、标签处理器类及标签的属性等。<tag>元素的定义如下:

JSP自定义标签的开发与应用

JSP自定义标签的开发与应用

JSP自定义标签的开发与应用在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库),涉及到了几十个标签。

虽然这些标签可以完成比较复杂的工作,但它们仍然无法满足程序中的特殊需求。

因此,就需要用户根据自己的需要来定制JSP标签,这种由用户自己实现的JSP标签被称为自定义标签。

.1 自定义标签基础自定义标签和JSTL中的标签从技术上看没有任何区别,可以将这些标签统称为JSP标签。

JSP标签在JSP页面中通过XML语法格式被调用,当JSP引擎将JSP页面翻译成Servlet时,就将这些调用转换成执行相应的Java代码。

也就是说,JSP标签实际上就是调用了某些Java 代码,只是在JSP页面中以另外一种形式(XML语法格式)表现出来。

1.1 编写输出随机数的标签开始自定义标签的学习之前,在这一节先来实现一个简单的自定义标签,以使读者做一下热身,同时读者通过本节的例子可以对自定义标签的实现方法和过程有一个感性的认识。

【实例1-1】实现输出随机数的标签1. 实例说明在本例实现的自定义标签(random标签)的功能是输出一个指定范围的随机整数。

random 标签有如下几个特征:没有标签体。

有两个属性:min和max。

其中min属性表示生成随机数的最小值,max属性表示生成随机数的最大值。

min属性的默认值是0,max属性的默认值是Integer.MAX_V ALUE。

生成随机数的范围是min <= random < max。

random标签的标准调用形式如下:<ct:random min="1" max="100" />其中“ct”是调用标签时的前缀,通过taglib指定的prefix属性指定。

上面的代码的功能是输出一个在1(包括)和100(不包括)之间的随机数。

2. 编写标签类标签类是自定义标签的核心部分。

实现标签类的方法有很多,但最简单的方法是编写一个从javax.servlet.jsp.tagext.TagSupport类继承的Java类,并在该类中覆盖TagSupport类的doStartTag方法。

JAVAWEB JSP自定义标签开发入门

JAVAWEB  JSP自定义标签开发入门

javaweb——jsp自定义标签开发入门一、自定义标签的作用自定义标签主要用于移除Jsp页面中的java代码。

二、自定义标签开发和使用2.1、自定义标签开发步骤1、编写一个实现Tag接口的Java类(标签处理器类)复制代码1package me.gacl.web.tag;23import java.io.IOException;45import javax.servlet.http.HttpServletRequest;6import javax.servlet.jsp.JspException;7import javax.servlet.jsp.JspWriter;8import javax.servlet.jsp.PageContext;9import javax.servlet.jsp.tagext.Tag;1011public class ViewIPTag implements Tag{1213//接收传递进来的PageContext对象14private PageContext pageContext;1516@Override17public int doEndTag()throws JspException{18System.out.println("调用doEndTag()方法");19return0;20}2122@Override23public int doStartTag()throws JspException{24System.out.println("调用doStartTag()方法");25HttpServletRequest request=(HttpServletRequest) pageContext.getRequest();26JspWriter out=pageContext.getOut();27String ip=request.getRemoteAddr();28try{29//这里输出的时候会抛出IOException异常30out.write(ip);31}catch(IOException e){32//捕获IOException异常后继续抛出33throw new RuntimeException(e);34}35return0;36}3738@Override39public Tag getParent(){40return null;41}4243@Override44public void release(){45System.out.println("调用release()方法");46}4748@Override49public void setPageContext(PageContext pageContext){50System.out.println("setPageContext(PageContext pageContext)");51this.pageContext=pageContext;52}5354@Override55public void setParent(Tag arg0){5657}5859}复制代码2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述gacl.tld文件的代码如下:复制代码1<?xml version="1.0"encoding="UTF-8"?>23<taglib xmlns="/xml/ns/j2ee"4xmlns:xsi="/2001/XMLSchema-instance"5xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"6version="2.0">7<!--description用来添加对taglib(标签库)的描述-->8<description>孤傲苍狼开发的自定义标签库</description>9<!--taglib(标签库)的版本号-->10<tlib-version>1.0</tlib-version>11<short-name>GaclTagLibrary</short-name>12<!--13为自定义标签库设置一个uri,uri以/开头,/后面的内容随便写,如这里的/gacl,14在Jsp页面中引用标签库时,需要通过uri找到标签库15在Jsp页面中就要这样引入标签库:<%@taglib uri="/gacl" prefix="gacl"%>16-->17<uri>/gacl</uri>1819<!--一个taglib(标签库)中包含多个自定义标签,每一个自定义标签使用一个tag标记来描述-->20<!--一个tag标记对应一个自定义标签-->21<tag>22<description>这个标签的作用是用来输出客户端的IP地址</description>23<!--24为标签处理器类配一个标签名,在Jsp页面中使用标签时是通过标签名来找到要调用的标签处理器类的25通过viewIP就能找到对应的me.gacl.web.tag.ViewIPTag类26-->27<name>viewIP</name>28<!--标签对应的处理器类-->29<tag-class>me.gacl.web.tag.ViewIPTag</tag-class>30<body-content>empty</body-content>31</tag>3233</taglib>复制代码2.2、在Jsp页面中使用自定义标签1、使用"<%@taglib uri="标签库的uri"prefix="标签的使用前缀"%>"指令引入要使用的标签库。

跟我学J2EE JSP自定义标签技术——带标签体的标签并且对标签体进行处理的自定义标签开发实例

跟我学J2EE JSP自定义标签技术——带标签体的标签并且对标签体进行处理的自定义标签开发实例

1.1带标签体的标签并且对标签体进行处理的自定义标签开发实例1、如果需要处理标签对间的信息---带标签体的标签并且对标签体进行处理例(1)编程要点1)此时应该在标记Java程序类中同时重载doStartTag()和doEndTag()方法,上面的两个标签分别调用这两个方法。

并且可以实现IterationTag接口的doAfterBody()方法;2)而如果要求将“这是成对的标签正文内容”字符串原样输出,则应该注意的是在doStartTag()中需要返回return(EV AL_BODY_INCLUDE)表示要求计算标签体正文内容,而不是return(SKIP_BODY)表示跳过标签体正文内容;或者EV AL_BODY_BUFFERED(当你想使用BodyContent);3)而doEndTag()需要return(EV AL_PAGE)表示要求容器在标签结束时继续计算JSP页面其他的部分。

4)doAfterBody方法在标记体执行后被调用。

象doStartTag一样,doAfterBody必须返回指示,确定是否需要继续执行标记体。

如果需要再次执行标记体,返回EV AL_BODY_BUFFERED,否则doAfterBody返回SKIP_BODY2、编写该类型的标签处理程序的JAVA类文件,可以将标签类继承BodyTagSupport类,并重写doAfterBody()方法。

(1)添加一个类,名称为JSPTagTest3,包名称为jsptaglib,基类为javax.servlet.jsp.tagext.BodyTagSupport(2)对该JavaBean进行编程并重写doAfterBody()方法(3)编程该JavaBean以使用标签体的正文内容/*在JCreator中编译该程序时要注意:由于在JDK.14中并没有包含javax.servlet.jsp.*、javax.servlet.jsp.tagext.*等包,应该在JCreator中引入这些包,这些包可以从Tomcat\common\lib\jsp-api.jar和servlet-api.jar文件*/package jspTagLib;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;import java.io.*;/*继承BodyTagSupport类的主要目的是能够处理标签的正文内容,否则应该继承TagSupport类*/public class JSPTagTest3 extends BodyTagSupport{private String tagproperty="属性的缺省值";public int doStartTag() throws JspTagException //程序的执行起始点{try{/*out是一个JspWriter类型的隐含对象,用于向jsp网页输出内容。

JSP自定义标签的实现

JSP自定义标签的实现
1 4
J S P自定义标签 的实现
J S P自定义标签的实现
蒋波 任 继念 崔蔚
( 中国工程物理研究院工学院,四川绵阳,6 2 1 9 0 0 )


文章介绍了实现 自定义标签 需要 的接 口和基类 ,也通过具体例子说明 自定义标签的实现方法和在
J S P页中的应用 。
关键词 T a g S u p p o r t 类;B o d y T a g S u p p o r t 类 ;T L D;t a g l i b指令
T a g . S KI P B OD Y 表 示标签 的体 内容 应该 忽略 , T a g . E V AL B O DY I NC L UD E表示 体 内容应 该被 处理 ,
收稿 日期 :2 0 1 4 . 0 1 - 0 6
笙! 星 墨 塑
塾 兰 皇 型 垫
然后 控制 转 移 到 d o Af t e r B o d y 方 法 上 ,这 个 方法 也返 回两 个可 能值 之一 ,T a g . S KI P _ BO DY将控 制转 移
容的情形 , 而T a g与 I t e r a t i o n T a g 接 口和对应的 T a g S u p p o  ̄类适用于标签体内容为空或直接把体内容传 递到页面 的简单情形,没有体 内容的标签也可直接实现更简单的 T a g 接 口。
I t e r a t i o n T a g接 口的执行 流程 如 图 1右 半部分所 示 ,第 一步 是获得 适 当类 的一个 实例 ,或者 从 J S P 容器 的标 签 处理 器 资源 池 ,或 者产 生一个 新 实例 ,然 后 ,标 签 处理器 属性被 设置 ,这 包括 J S P 容器调 用T a g接 口的 s e t P a g e C o n t e x t( )方 法指 定 当前 的 P a g e C o n t e x t 对 象 ,调用 s e t P a r e n t( )提供 对 当前标

利用Word制作标签

利用Word制作标签

利用Word制作标签在日常工作和生活中,我们经常需要使用各种标签,如文件标签、物品标签、邮寄标签等。

利用Word软件可以轻松制作出符合自己需求的标签。

本文将介绍如何使用Word制作标签,帮助您提高工作效率和美化标签的外观。

一、准备工作在开始制作标签之前,首先需要明确标签的尺寸、形状和样式。

一般情况下,标签的尺寸和形状可以根据实际需要进行设置。

Word提供了多种预设的标签尺寸和形状供选择,也可以自定义标签尺寸。

另外,还可以选择合适的字体、字号、颜色和样式,以便使标签更加美观和易识别。

二、选择标签尺寸和形状在Word软件中,选择“邮件ings”选项卡,点击“标签”的按钮,弹出一个标签对话框。

在对话框中,可以选择各种预设的标签厂商和标签型号。

如果没有合适的预设选项,可以点击“新建标签”按钮,自定义标签尺寸和形状。

三、设置标签内容在标签对话框中,可以设置标签的内容。

如果需要批量制作相同内容的标签,可以在“地址”栏中输入需要的文本内容。

这里可以利用Word的文本编辑功能,包括字体、字号、加粗、倾斜、下划线等设置,调整标签内容的样式。

标签对话框还提供了对齐方式、距离等设置,可以根据实际需求进行调整。

四、打印标签设置好标签内容后,点击“打印”按钮,弹出打印对话框。

在对话框中,可以选择打印机和打印设置,如纸张大小、打印方向等。

点击“打印”按钮,即可开始打印标签。

五、其他技巧和注意事项1. 标签打印时,可以选用特殊的标签纸,以保证打印质量和效果。

2. 如果需要打印不同内容的标签,可以在Word中创建数据源文件,以便批量打印不同内容的标签。

3. 在打印过程中,可以预览每个标签的效果,以确保打印正确无误。

4. 可以保存标签模板,以便今后再次使用或修改。

总结:通过Word软件,我们可以轻松制作出符合需求的标签,提高工作效率和美化标签的外观。

根据实际需要选择标签尺寸和形状,设置标签内容并根据需求进行调整,最后通过打印完成标签制作。

自定义标签编写步骤

自定义标签编写步骤

概括地说,自定义标签编写包括四个步骤:1.编写标签处理类2.编写标签描述tld文件3.配置web.xml文件4.在jsp页面中声明并调用标签编写标签处理类1)放在一个包中,即package **;2)导入必要的包:import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.*等。

3)在编译标签处理类时,须将jsp-api.jar(位于tomcat的common\lib 目录下)文件加入到classpath中标签描述文件tld文件由一系列元素组成,涉及的元素很多,其中必需的元素有:<taglib>:根元素<tlib-version>:标签库版本号<uri>:标签库唯一uri的元素<tag>:描述每个标签处理器及属性的元素以下是<tag>标签下的元素:<name>:与标签库名字前缀一起使用的标签名字<tag-class>:标签处理类的名称,包括包的名字<body-content>:描述标签处理器使用标签体的方式<attribute>:描述相关属性信息配置web.xml文件作用:声明标签库引用<taglib><taglib-uri>与tld文件中的uri一致</taglib-uri><taglib-location>tld文件的路径</taglib-location></taglib>在jsp页面中声明并调用1)<%@taglib uri=”与tld文件中的uri一致”prefix=”使用时的前缀名字”%>2)使用格式:<前缀名字:tag名字相关属性赋值>程序举例(实现简单的文本框)java程序:package tags;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class Textbox extends TagSupport{private String lable="";private String name="";private String value="";private String maxlength="20";public void setLable(String lable){ble=lable;}public void setName(String name){=name;}public void setValue(String value){this.value=value;}public void setMaxlength(String maxlength){this.maxlength=maxlength;}public int doStartTag(){try{JspWriter out=pageContext.getOut();out.print("<label>"+lable+"</label>");out.println("<input value='"+value+"' name='"+name+"' size='"+maxlength+"' id='textbox' >"); }catch(Exception e){System.out.println("failed");}return EVAL_BODY_INCLUDE;}}tld文件:<?xml version="1.0" encoding="ISO-8859-1" ?><taglib xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"version="2.0"><tlib-version>1.0</tlib-version><uri>/mytag</uri><tag><name>textbox</name><tag-class>tags.Textbox</tag-class><body-content>empty</body-content><attribute><name>lable</name><required>false</required></attribute><attribute><name>name</name><required>true</required></attribute><attribute><name>value</name><required>true</required></attribute><attribute><name>maxlength</name><required>false</required></attribute></tag></taglib>web文件<?xml version="1.0" encoding="ISO-8859-1"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee web-app_2_4.xsd"version="2.4"><taglib><taglib-uri>/mytag</taglib-uri><taglib-location>/WEB-INF/tlds/tag.tld</taglib-location></taglib></web-app>jsp页面<%@page contentType="text/html;charset=gb2312"%><%@taglib uri="/mytag" prefix="my"%><html><head><title>jsp自定义标签的简单使用实例</title></head><body><my:textbox lable="用户名:" name="username" value="" /><br><my:textbox lable="密&nbsp;&nbsp;码:" name="username" value="" /> </body></html>。

WPS技术员教你使用插入工具创建自定义标

WPS技术员教你使用插入工具创建自定义标

WPS技术员教你使用插入工具创建自定义标随着科技的不断发展,办公软件也在不断更新和改进。

WPS作为一款领先的办公软件,提供了众多实用的功能和工具,让用户能够更高效、更方便地进行办公工作。

其中,插入工具是WPS的一项重要功能,它可以帮助用户创建自定义标签,让办公工作更加个性化和简便。

本文将由WPS技术员向大家介绍如何使用插入工具来创建自定义标签。

1. 打开WPS软件并新建文档首先,在电脑上打开WPS软件,然后点击新建文档,创建一个空白文档。

这样我们就可以在这个文档上进行自定义标签的创建和编辑。

2. 导航至插入工具在WPS软件的上方工具栏中,可以看到一个名为“插入”的选项卡。

点击这个选项卡,会出现一个下拉菜单,里面列出了各种插入工具和功能。

我们需要找到并点击“标签”选项,进入标签插入设置界面。

3. 定义标签格式在标签插入设置界面,我们可以进行各种自定义标签的设置和编辑工作。

首先,我们需要定义标签的格式。

通过选择不同的字体、字号和颜色,我们可以根据自己的喜好和需求来设置标签的外观,使其更加美观和易于辨认。

4. 输入标签内容在标签插入设置界面的文本框中,我们可以输入需要显示在标签上的内容。

这可以是一段文字、一组数字、一个网址或者其他任何符合需求的信息。

在输入内容之后,可以根据需要对文字进行排版和格式调整,以达到最佳的阅读效果。

5. 选择插入位置在标签插入设置界面下方,有一个名为“插入位置”的选项。

通过选择不同的插入位置,我们可以将自定义标签插入到文档的不同位置。

可以选择在当前光标所在位置插入标签,或者在文档的开头、结尾或其他指定位置进行插入。

6. 将标签插入文档完成标签设置和内容输入之后,我们可以点击“插入”按钮,将自定义标签插入到文档中。

此时,我们可以看到标签已经成功地插入到指定的位置,而且显示的内容和格式也符合我们的预期。

总结:通过WPS的插入工具,我们可以方便地创建各种自定义标签,为办公工作带来更多的个性化和便利性。

JSP教程_自定义标签的开发

JSP教程_自定义标签的开发

·222·
Eclipse 从入门到精通
<!-- 以上为描述性文件的头部 --> <description>mytag 1.1 print library</description> <display-name>mytag 标签库</display-name> 工具 --> <tlib-version>1.0</tlib-version> <jsp-version>1.2></jsp-version> <short-name>mytag</short-name> --> <uri>/mytag</uri> <tag> <description>打印页面 taglib</description> <name>print</name> <!-- 惟一标签名 --> <tag-class>cn. tag.mytagPrint</tag-class> <body-content>JSP</body-content> <attribute> <name>value</name> <required>true</required> </attribute> <attribute> <name>type</name> <required>false</required> </attribute> </tag> </taglib>

jsp的三种自定义标签写法示例

jsp的三种自定义标签写法示例

jsp的三种⾃定义标签写法⽰例1、⾃定义⽅法标签引⼊⽅式⽰例:<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>写法⽰例:1<?xml version="1.0" encoding="UTF-8" ?>23<taglib xmlns="/xml/ns/j2ee"4 xmlns:xsi="/2001/XMLSchema-instance"5 xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"6 version="2.0">78<description>JSTL 1.1 functions library</description>9<display-name>JSTL functions sys</display-name>10<tlib-version>1.1</tlib-version>11<short-name>fns</short-name>12<uri>/jsp/jstl/functionss</uri>1314<!-- DictUtils -->1516<function>17<description>获取字典对象列表</description>18<name>getDictList</name>19<function-class>com.sdyy.base.sys.utils.DictUtils</function-class>20<function-signature>java.util.List getDictList(ng.String)</function-signature>21<example>${fns:getDictList(typeCode)}</example>22</function>2324<function>25<description>获取字典对象列表</description>26<name>getDictListJson</name>27<function-class>com.sdyy.base.sys.utils.DictUtils</function-class>28<function-signature>ng.String getDictListJson(ng.String)</function-signature>29<example>${fns:getDictListJson(typeCode)}</example>30</function>313233<function>34<description>对象变json</description>35<name>toJSONString</name>36<function-class>com.alibaba.fastjson.JSON</function-class>37<function-signature>ng.String toJSONString(ng.Object)</function-signature>38</function>39</taglib>function-class就是该⽅法的实体所在类路径,function-signature就是该⽅法的⽅法名,值得⼀提的是,这个⽅法必须是个static⽅法。

JSP自定义标签开发手册

JSP自定义标签开发手册

JSP自定义标签一、步骤及目录结构1、编写标签处理类2、编写*.tld文件,放置于WEB-INF目录或子目录下3、在JSP页面中使用目录结构如下:二、示例程序1、日期时间处理标签1)编写java类,命名为DataTimeTag.java/***copyright reserved,zhangym2008*/package org.zym.tags;import java.io.IOException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.jsp.JspTagException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;/***通过给定的日期字符串,根据指定的格式进行日期时间的格式化.<br>*<ul>*<li>完全指定属性:&lt;util:datetime date="1978-03-2820:58:58"pattern="yyyy年MM月dd日hh:mm:ss"/&gt;,输出结果为:yyyy年MM月dd日hh:mm:ss *<li>取系统时间:&lt;util:datetime/&gt;,输出内容为:yyyy-MM-dd hh:mm:ss *</ul>*@param pattern格式化日期时间的字符串,如"yyyy-MM-dd hh:mm:ss".*@param dateString时间字符串,为空则为系统当前时间*@return按要求格式化的日期时间字符串*@author zhangym<br>*/public class DateTimeTag extends TagSupport {private static final long serialVersionUID= -2132806052574019882L;private String pattern = "yyyy-MM-dd hh:mm:ss"; //时间日期格式字符串private String dateStr; //时间日期字符串属性private Date date;public void setPattern(String pattern) {this.pattern = pattern;}public void setDate(String dateStr) {this.dateStr = dateStr;}@Overridepublic int doEndTag() throws JspTagException{SimpleDateFormat sdf = new SimpleDateFormat(pattern);SimpleDateFormat sdfi = new SimpleDateFormat("yyyy-MM-ddhh:mm:ss");if(dateStr == null){date = new Date();}else{try {date = sdfi.parse(dateStr);} catch (ParseException e) {e.printStackTrace();}}JspWriter out = pageContext.getOut();try {out.println(sdf.format(date));} catch (IOException e) {e.printStackTrace();}//继续计算页面return EVAL_PAGE;}}2)编写.tld文件,命名为util.tld,放在目录WEB-INF下面的tlds文件夹下,其实名此文件的名称和在WEB-INF目录下的位置是任意的。

轻松学Java Web开发之用户自定义标签

轻松学Java Web开发之用户自定义标签

release()
由标签处理类引起,来释放状态
BodyTag子接口类又重新定义了两个新方法,如表 6.4所示。
方法名 setBodyContent(BodyContent b) doInitBody() 为体中代码作初始化 为标签体中的内容设置属性 方法描述
6.1.4 标签处理器
在标签处理器中定义了标签处理方法doStartTag()和 doEndTag(),这两个方法分别在标签开始和结束时执 行处理和输出动作。这两个方法都要求分别返回一 个状态码,通知JSP容态码一共有四种,具体 作用如图6.3所示。
6.1.4 标签处理器
Tag接口类中所定义的方法如表6.3所示。
方法名 setPageContext(PageContext pc) setParent(Tag t) getParent() doStartTag() doEndTag() 设置当前页面的上下文 设置这个标签处理类的父类 获得父类 处理这个实例中的开发标签 处理这个实例中的结束标签 方法描述
web.xml文件配置
配置文件,用来描述自定义标签的TLD文件位置信息
标签库声明
使用自定义标签,首先要使用标签库声明命令进行声明
JavaBean、web.xml文件配置比较简单。以下仅对标签库 声明、标签库描述和标签处理器进行简要介绍。
6.1.2 自定义标签声明
我们在第2章中介绍过taglib指令。该指令就是当JSP 页面中引用自定义标签时,用来在页面上对自定义 标签进行声明的。taglib编译指令的作用主要是定义 一个标签库路径及其前缀。taglib指令的语法格式如 图6.2所示。
EVAL_BODY_INCLUDE 当doStartTag()返回时,指明servlet应对标签体进行评估 SKIP_BODY EVAL_PAGE SKIP_PAGE 当doStartTag()返回时,指明servlet应忽视标签体 当doEndTag()返回时,指明页面其余部分应被评估 当doEndTag()返回时,指明页面其余部分就被跳过
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只有tlib-version元素是必须的,其他元素是可选的
可包含一个<uri>元素:
<uri>/sample</uri>
指定访问该库中的标签使用的URI 可以使用下面的taglib指令把库导入到JSP页面中:
<%@ taglib prefix="test" uri="/sample"%>
3.1.4 SimpleTagSupport类
是SimpleTag接口的实现类,它除实现了SimpleTag接口中 的方法外,还提供了另外3个方法,如下所示: • protected JspContext getJspContext() 返回标签中要 处理的JspContext对象。 • protected JspFragment getJspBody() 返回 JspFragment对象,它存放了标签体的内容。 • public static final JspTag findAncestorWithClass(JspTag from, Class klass) 返回带指定类的祖先标签。
3.1.2 自定义标签的开发步骤
创建和使用自定义标签一般包含下面3个步骤:
1. 创建标签处理类(tag handler); 2. 创建标签库描述文件(TLD); 3. 在JSP文件中导入标签库和使用标签。
1. 创建标签处理类
标签处理类是实现某个标签接口或继承某个标签类的实现类, 程序实现了SimpleTag接口.
然而,如果在web.xml文件中包含对同一个URI的显式映射, 则显式映射要比这种隐式映射优先。
这里的< uri>元素值看上去像一个Web资源的URI,实际上它 仅仅是一个逻辑名称,并不与任何Web资源对应,容器使用它 仅用来完成URI与TLD文件的映射。 可以使用三种类型的URI:
• (1)绝对URI:例如,/sample和 http://localhost:8080/taglibs。 • (2)根相对URI:例如,/mytaglib和/taglib1/helloLib。 • (3)非根相对URI:例如,HelloLib和taglib2/helloLib。
容器如何查找TLD文件
• 实际上,容器会自动建立一个<uri>名和TLD文件之间的映射。 • 在部署一个Web应用时,只要把TLD文件放在容器会搜索的位置上, 容器就会发现这个TLD,并为标签库建立一个映射。
容器自动搜索的位置包括:
• /WEB-INF目录或其子目录; • /WEB-INF/lib目录下的JAR文件中的META-INF目录或其子目录
标签扩展API的层次结构
TagSupport
BodyTagSupport
标签处理器类还要使用到异常类,定义在 javax.servlet.jsp包中。 • JspException – 简单标签的doTag()方法和传统标签的有关方法都 抛出JspException异常 • JspTagException – JspTagException扩展了JspException。
3. 在JSP页面中使用标签
在JSP页面要使用自定义标签,需要通过<taglib>指令声 明自定义标签的前缀和标签库的URI,格式如下所示: <%@ taglib prefix= "demo" uri="http://localhost/sampleLib"%>
例3.3 : hello.jsp
例3.2 sampleLib.tld
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="/xml/ns/j2ee" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/xml/ns/j2ee version="2.0"> <tlib-version>1.0</tlib-version> <uri>http://localhost/sampleLib</uri> <tag> <name>hello</name> <tag-class>sampleLib.HelloTag</tag-class> <body-content>empty</body-content> </tag> </taglib>
3.2
理解TLD文件
每个自定义标签都必须在TLD文件声明。当在JSP页面中使用自定 义标签时,容器将读取TLD文件,从中获取有关自定义标签的信 息,如标签名、类名、是否是空标签以及是否有属性等。
3.2.1 <taglib>元素
<taglib>元素是根元素。它包含一些二级元素。下面是 <taglib>元素的DTD:
2. 创建标签库描述文件
• 标签库描述文件(Tag Library Descriptor,简称TLD)是XML格 式的文件,其扩展名一般为.tld。TLD文件主要用来定义可以使 用哪些标签以及与这些标签的处理类的对应关系等。
标签库描述文件: sampleLib.tld
TLD文件一般存放在Web应用程序的/WEB-INF目录或其子目录 下
<taglib> <taglib-uri>/WEB-INF/sampleLib.tld</taglib-uri> <taglib-location>/WEB-INF/sampleLib.tld </taglib-location> </taglib>
3.2.2 <tag>元素
<taglib>元素可以包含一个或多个<tag>元素,每个<tag>元 素都提供了关于一个标签的信息,如要在JSP页面中使用的标 签名、标签处理器类及标签的属性等。<tag>元素的定义如下:
为了开发自定义标签,Sun提供了一些接口和类,它们称为标 签扩展API
• javax.servlet.jsp.tagext包 • javax.servlet.jsp包
3.1.1 标签扩展API
javax.servlet.jsp.tagext包 JspTag SimpleTag SimpleTagSupport Tag IterationTag BodyTag
例3.1:程序HelloTag.java:向JSP输出一条消息
要正确编译该文件,必须将Tomcat安装目录中的\lib\jspapi.jar文件添加到classpath路径中。 部署时,将编译后的标签处理文件类放到web应用程序的WEBINF\classes目录下
1. package sampleLib; 2. import java.io.*; 3. import javax.servlet.jsp.*; 4. import javax.servlet.jsp.tagext.*; 5. public class HelloTag implements SimpleTag{ 6. JspContext jspContext = null; 7. JspTag parent = null; 8. public void setJspContext(JspContext jspContext){ 9. this. jspContext = jspContext; 10. } 11. public void setParent(JspTag parent){ 12. this. parent = parent; 13. } 14. public void setJspBody(JspFragment jspBody){ } 15. public JspTag getParent(){ 16. return parent; 17. } 18. public void doTag() throws JspException, IOException{ 19. JspWriter out = jspContext.getOut(); 20. out.print("<font color='blue'>Hello, This is a simple tag.</font>"); 21. } 22. }
3.1.3 SimpleTag接口及其生命周期
SimpleTag接口中定义了生存周期方法,允许在Java类和JSP 之间传输信息,由Web容器调用来初始化SimpleTag操作。 1. SimpleTag接口的方法 • public void setJspContext(JspContext pc) • public void setParent(JspTag parent) • public void setJspBody(JspFragment jspBody) • public JspTag getParent() • public void doTag() throws JspException, IOException
第3章
自定义标签的开发
3.1 简单标签的开发 3.2 理解TLD文件 3.3 几种类型标签的开发
引言
在JSP页面中,不但可以用JSP标准标签(如 <jsp:include>),也可使用自定义的标签 自定义标签是用户自定义的一种标签,是用Java语言开发 的程序,当其在JSP页面中使用时将执行某种动作。 功能: 采用Java程序控制页面输出内容,实现页面输出格 式重用(一次编写,重复使用) 目的: 允许开发人员把服务器端行为以标记处理的形式 放到JSP页面中,实现页面设计和逻辑设计分开 代码重用,JSP代码更简洁
相关文档
最新文档