当前位置:文档之家› 第19篇创建自定义标签库

第19篇创建自定义标签库

第19篇创建自定义标签库

第19篇创建自定义标签库

自定义标签设计灵感

自定义标签设计灵感:20世纪80年代 通过东莞多加宝标签印刷 威廉·福克纳(WilliamFaulkner)在一句引文中写道:“过去永远不会死。”“它甚至还没有过去。” 怀旧是人类最强大和最普遍的情感之一。根据YouGov最近的一项研究: ?9/10的人说,他们至少偶尔会深情地回忆过去。 ?几乎有一半的人说他们经常或几乎总是深情地思考过去。 ?55%的人说,如果他们能够使用时间机器,他们就会回到过去。只有28%的人会走向未来。(那个幸运的家伙马蒂·麦克弗利 (MartyMcFly)两者都是。) 我们怀旧的具体重点因人而异。对于X世代和年长的千禧一代来说,上世纪80年代唤起了特别温暖的感觉(…)。品牌也注意到了。

当任天堂发布其迷你游戏时其他经典版2016年(一款于1985年首次推出的游戏机的复兴),它立即销售一空。在Netflix上,上世纪80年代的“荒诞不经”是收视率和文化巨人. 20世纪80年代的设计潮流也在经历着复兴。这个曾经被嘲笑为过于浮华和肤浅的十年,现在因其冒险精神和与传统决裂的意愿而受到赞扬。 你的品牌如何进入80年代的怀旧热潮?就像你的X代和千禧一代的客户一样,你可以从过去寻找灵感。以下是80年代美学的一些标志,以及如何将外观应用于定制产品标签。 孟菲斯灵感设计 当你想到80年代的陈词滥调时,你想象的是一种由一群米兰设计师在本世纪初开创的风格。孟菲斯集团正如人们所熟知的那样(顺便说一句,这与田纳西的城市无关),拒绝了现代主义的简约主义,而是玩弄着粗糙的线条、棱角分明的几何图形和粗犷的色彩。

孟菲斯的设计在20世纪80年代和90年代是一股不可忽视的力量,它在家具、床上用品上找到了出路,电视节目是的,诱捕器. 对于您的自定义标签:少即多的方法已经玩完了。突出架子上的外观,强调运动,颜色和乐趣。 氖色 不管80年代是怎么回事,都不是很微妙。十年来你脸上的态度就是它最喜欢的调色板:霓虹灯。明亮,明亮的颜色到处都是,从时尚到薄膜. 对于您的自定义标签:询问标签打印机扩展颜色范围可能包括霓虹灯。“未来派”造型 在20世纪80年代,每个人都期待着一个技术主导的未来,它既诱人又有点吓人。金属材质,能量螺栓,电网和激光束在电影“创”和“刀锋”中占据了很大的比重,更不用说产品包装了。

jsp-servlet题库(附答案)

1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

在JSP中用自定义标签实现集合的遍历—山寨版cforeach

【文章标题】在JSP中用自定义标签实现集合的遍历——山寨版 【文章作者】曾健生 【作者邮箱】zengjiansheng1@126.com 【作者QQ】190678908 ******************************************************************************* 在JSTL中,标签可方便地遍历集合或数组,在了解了自定义标签后,可动手实现标签的功能。 在编写自定义标签前,总要把实验环境搭建好^-^ 首先,定义一个Person类,在实验的集合中就是存放这个类的实例,代码如下:package com.javaeye.newjueqi; /** *实验类Person */ public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 既然是遍历集合,那么集合也是必须的,我们在测试页面TestMyELTag.jsp上写下如下的JSP代码,生成一个测试用途的集合ArrayList,集合中有三个元素 <% //第1个人对象 Person p1=new Person(); p1.setName("Tom"); p1.setAge(23); //第2个人对象 Person p2=new Person(); p2.setName("Mike");

自定义标签打印和复杂作业

自定义标签打印和复杂作业 通过东莞多加宝标签印刷 “我们怎样才能做到这一点?” 每一个创造性的想法最终都遇到了这个问题。你可以在脑海中看到成品,你知道你想要它做什么,看上去像…。但这有可能吗? 我们也碰到了那个问题。 作为负责生产标签打印机的副总裁,我一直在从事我们处理过的最复杂和最不寻常的工作。当我们团队深厚的专业知识、数十年的经验和创造性的创造力结合在一起,创造出突破的项目来推动项目的发展时,我永远不会停止惊讶于什么才是可能的。 我将深入探讨我们是如何做到这一点的,但首先,让我们看看我们(或任何其他定制标签制造商)如何将一项工作归类为“复杂”。

什么是“复杂的”自定义标签打印工作? 随着添加更多组件,任何作业都变得更加困难。考虑一个单色的工作,一个单一的模切作为你的基线。然后添加另一种颜色,再加上另一种颜色,再加上另一种模具,或者再添加两种模具--这个项目变得越来越困难。 模具是一种切削工具或装置,用于创建标签的所需形状或在标签内冲压形状。使用我们的标签印刷术语汇编. 我们的一些最具挑战性的工作包括添加多个网络(基本上,多个材料组合成一个多层解决方案)。例如,打印扩展内容标签您可能会使用附加折叠优惠券到产品涉及到一个复杂的印刷和折叠顺序。 在我们的印刷机上增加辅助设备是我们解决这类产品的办法。我们拿第三个网站,运行它的顶部,通过一些鼓,然后折叠网络本身,把它回到底部的网络,并在上面添加一层。 如果听起来很复杂,那是因为它很复杂。幸运的是,熟能生巧,因此,重要的是与有丰富经验的标签打印机使用这类产品。 自定义标签印刷挑战:促销卡 你知道我们的印刷能力远远超出了标签吗?我们最复杂的工作之一根本不涉及标签。

JSP的3个编译指令、7个动作指令

JSP的3个编译指令、7个动作指令 3个编译指令:page、include、taglib JSP的编译指令是通知JSP引擎(Tomcat、WebLogic)的消息,它不直接生成输出。 JSP引擎的工作原理: 当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤: (1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序 (2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class (3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端 以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。 编译指令都有其默认值,因此无须为每个指令设置其值。 常见的编译指令有3个: (1)、page:是针对当前页面的指令; (2)、include:用于指定包含另一个页面; (3)、taglib:用于定义和访问自定义标签。 使用编译指定的语法格式如下: <%@ 编译指令名属性1="属性值" 属性2="属性值" ...%>

1、page指令: 是针对当前页面的指令,通常位于JSP页面的顶端,一个JSP页面可以使用多page指令。 常用的page指令如下的格式: <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@ page import="java.sql.*" %> 常用的page的属性如下: (1)、contentType:用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认MIME类型是text/html,默认的字符集类型 为:ISO-8859-1; (2)、language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,所以该属性的值通常都是java。 (3)、errorPage:指定错误处理页面,如果本页面产生了异常或者错误,而该页面没有对应的处理代码,则会自动调用该属性指定的JSP页面; (4)、pageEncoding:指定生成网页的编码字符集; (5)、import:用于导入包。下面几个包是默认自动导入的,不需要显示导入。默认导入的包有:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*; 2、include指令: 语法格式为:<%@ include file="要包含的页面路径" %> jsp中有两种包含模式,一种是<%@ include file="要包含的页面路径" %>,这种叫静态包含; 另一种是 ,这叫做动态包含。

JavaEE自定义标签(DOC)

JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用 1、标签 以类似于html标签的方式实现的java代码的封装。 第一:形成了开发标签的技术标准---自定义标签的技术标准。 第二:java标准标签库(sun之前自己开发的一系列的标签的集合)jstl,以及表达式语言E L。 2、自定义标签 (1)理解: 可以允许用户自己根据自己的需要,去开发自己的标签的技术规范。 通俗:在Jsp页面上,以简单的标签封装java代码的操作。 //在自定义标签类中,先调用setPageContext()实例化内置对象: //然后是doStartTag()方法,核心代码放在这个方法里面:

//定义变量,变量的Get、Set方法: private String UserName = "";

//tld配置文件放置在WEB-INF目录下,主要的标记如下,主要的配置如下: //前面tlib-version版本号、Jsp-version JSP的版本号、short-name 命名空间、是必须有的 //uri,注意是uri而不是url,url是访问的路径。 //而uri为访问时候的别名,写在JSP页面上的标签的别名。 //name为此标签类的别名,tag-class 为标签类的存放的物理路径 //body-content 为是否有标签体,如果是/子关闭标签设置为EMPTY //如果涉及到标签属性,可以设置attribute,其中name为属性的名称,而不是别名,required 属性是否必须设置,rtexprvalue 是否程序运行时候为属性赋值。 //如果在tld文件中不设置uri,则在web-xml中必须对talib-uri进行设置。

自定义标签库

JSP标签库(也称自定义库)可看成是一套产生基于XML脚本的方法,它经由JavaBeans来支持。在概念上说,标签库是非常简单和可以重用的代码构造。 自定义标签有着丰富的特点,它们可以: 1.可以通过调用页面传递的属性进行自定义; 2.可以访问对于JSP页面可能的所有对象; 3.可以修改由调用页面产生的响应。 4.可以相互间通信。你可以创建并初始化一个JavaBean组件,创建一个变量引用标签中的bean,接着在其它的标签中引用该bean. 5.可以在一个标签中嵌套另一个,可以在JSP页面中进行复杂的交互。自定义标签为在JSP项目中创建易于重用的代码打开了一扇大门。你所需要的只是标签库和它的文档说明。 通过实现接口或者继承现有的类,我们就可以开发自定义的标签。常用的接口有:

TagSupport类 该类是IterationTag的缺省实现。除了实现原有方法外,本身还增加了一些有用的其他方法和成员变量。下表列出其中重要的几个:

BodyTagSupport类 该类同时继承了TagSupport类,并实现BodyTag接口。除了前表所示方法,该类还提供了一些其它方法便于使用。 实现Tag接口 所有的标签处理器都需要间接或直接的实现这个接口。 下面列出Tag接口定义的方法和常量:

setPageContext()方法 setPageContext()方法是一个定制标签声明周期内第一个要被调用的方法。完整写法是: public void setPageContext(PageContext); jsp引擎会将jsp页转换时隐含创建的pageContext对象,作为参数,调用setPageContext方法。 通常的做法会将这个参数保存为本标记处理器的参数。 setParent()和getParent()方法 当标签嵌套使用时,外层的标签被成为父标签,内部的被称为子标签。完整的写法是: public void setParent(Tag); public Tag getParent(); 其中setParent方法对父标签对象进行设置。而getParent方法用以获得父标签对象。

java笔试题127

选择器 第1题. 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 正确答案为:B 第2题. 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 正确答案为:D 第3题. 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 正确答案为:C 第4题. 自定义标签的作用是 A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 正确答案为:C 第5题. request.getRequestDispatcher().forward(request,response)称之为 A. 流转 B. 转发 C. 重定向 D. 导航 正确答案为:B

第6题. 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ Publicvoid init() throws ServletException{ } Publicvoid service(HttpServletRequest request,HttpServletResponse response) ThrowsServletException,IOException{ PrintWriterout = response.getWriter(); out.println(“hello!”); } } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello! C. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息 正确答案为:B 第7题. 在Servlet中,response.getWriter()返回的是____________ A. JspWriter对象 B. PrintWriter对象 C. Out对象 D. ResponseWriter对象 正确答案为:B 第8题. 在web.xml中使用___________标签配置过滤器 A. B. C. D. 正确答案为:A 第9题. 自定义标签的描述文件在web.xml中配置正确的

自定义标签(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)带属性标签:如”/> (3)带标签体的标签: 在自定义标签的起始和结束标签之间的部分为标签体(Body)。Body的内容可以是JSP中的标准标签,也可以是HTML、脚本语言或其他的自定义标签。 ”> (4)可以被Script使用的标签: 定义了id和type属性的标签可以被标签后面的Scriptlet使用。 <%oraDB.getConnection(); %> 4.接口及其他

JSP课后习题答案

JSP课后习题答案 单元3 课本60页课后练习 填空题 1、tomcat服务器的默认端口是:8080 2、静态网页的内容是相对固定的,而动态网页的内容是随着访问时间的访问者发生变化。(填:动态网页或静态网页) 3、在tomcat成功安装和启动后,可以在浏览器中输入http://localhost:8080来测试安装配置是否正常。 4、在WEB-INF下必须有一个XML文件是web.xml 选择题 1、B 2、D 3、A 4、D 单元4 课本87页课后练习 填空题 1、脚本程序是一段在客户端请求时需要先被服务器执行的java 代码,它可以产生输出,同时也是一段流控制语句。 2、在jsp的3种指令中,用来定义与页面相关的指令是Page指令;用于在jsp页面中包含另一个文件的指令是Include指令(静态包含);用来定义一个标签库以及其自定义标签前缀的指令是Taglib指令。 3、动作元素允许在页面被请求时包含一些其他资源,如一个静态的HTML文件和动态的JSP文件。

4、Page指令的MIME类型的默认值为text/html,默认字符集是iso-8859-1 。 5、Jsp的隐藏注释格式为<%-- --%>或者<%--comment--%> Jsp的输出注释的格式是。 选择题 1、A 2、A 3、D 4、C 5、B 6、D 简答题(答案在课本79页) 请查阅资料并结合课堂上所讲内容,阐述include静态包含和动态包含指令的区别。 答:动态include指令是在执行时才将对包含的文件进行处理,要进行编译,可以带参数;静态的include的指令是简单的将两个文件进行合并,使其成为一个新的文件。 单元5 课本130页课后练习 填空题 1、在jsp内置对象中,用于请求相关的对象是Request对象。该对象可以使用getParameter(String s)方法来获取表单元素提交的信息。 2、Response对象中用来动态改变contentType 实型的方法是setContentType() 3、Session对象封装了属于客户会话的所有信息,该对象可以使用setAttribute()方法来设置指定名字的属性。

jsp自定义标签实例

jsp自定义标签实例 JSP自定义标签。在自定义标签的起始和结束标签之间的部分为标签体(Body)。 标签处理程序类:定义标签的行为,并在JSP引擎遇到自定义标签时调用执行。 标签库描述符(TLD)文件:描述标签库的XML文档,向JSP引擎提供有关自定义标签的标签处理程序的信息。tag标签相关属性:实现简单标签处理程序标签处理程序是一个在运行时调用的Java类,它包含在JSP文件中使用的自定义标签的实现代码.标签处理程序必须实现或扩展javax.servlet.jsp.tagext包中的类和接口.javax.servlet.jsp.tagext含有允许标签处理程序类与JSP容器通信的接口和类。 最近在项目中要用到这种技术,所以自己就写一个经典的HelloWorld实例:其实对自定义标签已经早有接触了(Struts中使用了很多自定义标签,如html、bean等)使用这种技术的优点:取代了JSP中的Java程序,并且可以重复使用,方便不熟悉Java编程的网页设计人员。 实现步骤: 首先启动eclipse,新建一个web项目(废话...) 1、修改web.xml文件,增加自定义标签支持。 Java代码 2、创建标签库TLD文件tlds\helloworld.tld 。 Java代码 这里注意:web.xml和xxx.tld这两个XML文件的头信息的版本匹配很重要,否则会导致页面报错找不到标签。

3、创建标签处理程序类HelloWorldTag(重写doStartTag和doEndTag方法)。 Java代码 补充: doStartTag()方法是遇到标签开始时会呼叫的方法,其合法的返回值是EVAL_BODY_INCLUDE与 SKIP_BODY,前者表示将显示标签间的文字,后者表示不显示标签间的文字。 doEndTag()方法是在遇到标签结束时呼叫的方法,其合法的返回值是EVAL_PAGE与SKIP_PAGE,前者表示处理完标签后继续执行以下的JSP网页,后者是表示不处理接下来的JSP网页。 doAfterBody(),这个方法是在显示完标签间文字之后呼叫的,其返回值有EVAL_BODY_AGAIN与 SKIP_BODY,前者会再显示一次标签间的文字,后者则继续执行标签处理的下一步。 EVAL_BODY_INCLUDE:把Body读入存在的输出流中,doStartTag()函数可用。 EVAL_PAGE:继续处理页面,doEndTag()函数可用。 SKIP_BODY:忽略对Body的处理,doStartTag()和doAfterBody()函数可用。 SKIP_PAGE:忽略对余下页面的处理,doEndTag()函数可用。 EVAL_BODY_BUFFERED:申请缓冲区,由setBodyContent()函数得到的BodyContent对象来处理tag的body,如果类实现了BodyTag,那么doStartTag()可用,否则非法。

自定义HTML标签属性-cjl

自定义HTML标签属性 为HTML元素添加一自定义的属性非常方便,只须将其加到尖括号中即可,与内置属性地位相等。 如我们要为TextBox元素添加属性idvalue: 只须在原来的控件后面加上:idvalue=”…”,成为: idvalue即可正式成为txtInput的属性,地位与其他属性相等。 如以下例子,在IE6中调试通过: 自定义属性

自定义标签的整理(新手教程)

在J2EE项目中,JSP页面常常通过在静态页面模板中嵌入scriptlets来插入动态的内容。 然而,随着复杂程序的增加,JSP页面也变得难于管理。虽然用这种方法开发小形项目唾手可得, 但是scriptlets仍然要面对下面的不利情况: Scriptlet难于阅读和修改。带有Scriptlets的JSP 页面混合了两种语言,这使得阅读和维护变得很困难。 Scriptlets鼓励了将数据表现和逻辑处理的混合。JSP 页面主要功能是数据表现而不是逻辑处理。逻辑处理属于Java类的工作,他们应该由程序员维护并能够重用。 Scriptlets不能够被重用。当scriptlets被重用时,常常是鼓励拷贝-粘贴来达到重用的效果,这是一种危险的维护方法。每一次你拷贝-粘贴scriptlets时,将有更多行多余的代码需要维护。 Scriptlets的参数很难进行确定传递. 无论如何,绝大数人简单的拷贝,粘贴、编辑或者类似的增加,使得大部份的多余的代码需要更多的维护。 与其创建充满了scriptlets的巨大的JSP页面,不如考虑使用用户自定义标签。用户自定义标签允许你创建、在JSP中使用你自己定义的类HTML标签。每当JSP引擎遇到用户自定义标签时,就会自动查找标签处理类,并自动调用他。页面中的自定义标签将会被票签处理类的输出所代替。这就

使得JSP页面不用直接在页面写Java代码,就可以指定生成动态的内容的。 用户自定义标签为你的网页设计提供了N种好处:他提高了页面代码的可读性。页面设计人员而不是程序员,能够使用很比使用Scriptlets更容易的使用标签。维护代码的程序员也只需个性标签库面不是JSP页面,这样他就不要再冒着破坏页面美观的风险。在使用标签的每一处,增强或者固定的标签改变了标签了的表现。标签比Scriptlets更容易确定参数,因为他会被作为一种属性或者在标签体内被传达。最后,标签比Scriptlets高度的可重用性,因为你可以创建共享的、可重用的自定义标签库。 JSTL提供的就是这种标准的自定义标签集。 让我们通过看一个简单的JSP页面例子,来看看如何使用自定义标签。下面这个页面使用scriptlet来得到数据: <%@ page import="java.text.SimpleDateFormat" %> <%@ page import="java.util.Date" %> Sample JSP

The date and time at the server are: <% String sformat = "EEEE, d MMMM yyyy 'at' kk:mm:ss z"; SimpleDateFormat format = new SimpleDateFormat(sformat); Date date = new Date(); String sdate = format.format(date); out.print(sdate); %>

JSP自定义标签详细

JSP标签库 在这篇文章中,我们主要讨论: ·什么是自定义tag标签? ·怎么使用tag标签? o 声明要使用的tag库 o 找到与之对应的tag处理类 o tag标签的类型 ·自定义tag标签 o tag处理类 o tag库描述 o tag标签示例 o 带属性的tag o 带body的tag o 定义了脚本变量的tag o 具有协作关系的tag ·自定义tag标签 o 一个迭代tag的例子 o 一个模板tag库 o tag处理类到底是怎样被调用的? 什么是自定义的tag? 一个自定义的tag标签是用户定义的一种JSP标记。当一个含有自定义的tag标签的JSP页面被jsp引擎编译成servlet时,tag标签被转化成了对一个称为tag处理类的对象进行的操作。于是当JSP页面被jsp 引擎转化为servlet后,实际上tag标签被转化成为了对tag处理类的操作。 自定义tag标签有很多特色,诸如: ·可以在JSP页面中自定义tag标签的属性 ·访问JSP页面中的所有对象 ·可以动态地修改页面输出 ·彼此这间可以相互通信。你可以先创建一个JavaBeans组件,然后在一个tag中调用此JavaBeans 组件,同时可以在另一个tag中调用它。 ·tag允许相互嵌套,可以在一个JSP页面中完成一些复杂的交互。 使用tag标签 本节主要描述怎样在JSP页面中使用tag标签,以及tag标签的不同类型。 要使用tag标签,JSP程序员必须做2件事: ·声明此tag标签的tag库 ·实现此tag标签 声明tag标签所在的tag库 如果要使用tag标签,则应用JSP的taglib指示符来指定其tag库(注意:taglib要在在使用此tag标

JSP自定义标签-标签属性

JSP自定义标签-标签属性 对自定义标签添加一些属性,可以使我们的标签功能更加灵活和复用。例如前一篇博客使用简单标签来对标签体内容执行一定的次数,就无法在标签上规定要执行的次数,必须在标签处理器类中修改,很不方便,如果使用带属性的标签就能很好的解决这个问题。 要想使简单标签具有属性,通常需要满足以下两个步骤: ①在标签处理器类中定义属性,同时为每个属性生成setter方法; ②在TLD文件中对于的标签下添加属性的标签,同时标签下定义其从标签,其中 从标签是必须要有的。标签所拥有的从标签如下: name标签:用于指定标签中属性的名称。 required标签:指定该属性是否必须。 rtexprvalue标签:指定该属性是否支持运行时表达式,如JSP表达式(<%=value %>)和EL表达式( ${value} )。如果我们设定为“false”的话,那么该属性只能支持字符串。 例1:使用简单标签来控制标签体内容执行次数(带属性标签方式) 编写标签处理器类: 1package com.bjpowernode.simpletag; 2public class LoopTagBody extends SimpleTagSupport { 3private int count; //定义一个属性,用来指定循环次数 4 5public void setCount(int count) { //为该属性设置setter方法

6this.count = count; 7} 8@Override 9public void doTag() throws JspException, IOException { 10JspFragment fragment = this.getJspBody(); 11for(int i=0;i 2 6A tag library exercising SimpleTag handlers. 71.0 8SimpleTagLibrary 9 simpletag 10 11 12loopbody 13com.bjpowernode.simpletag.LoopTagBody 14scriptless 15 16count 17true 18true 19 20 21 在JSP页面的开头导入taglib指令: <%@ taglib uri="simpletag" prefix="simple" %>

Velocity增加自定义标签的方法

Velocity的自定义标签 Velocity是当前我们用得最多的模板,其好处和使用方法非常丰富,网上一大堆,这里就不介绍了,需要的去网上搜索即可。这里重点介绍一下velocity的自定义标签及使用方法。自定义标签有两种方式:宏和java自定义工具 Macro 宏其实就是velocity已支持的所有标签的组合,好处是方便快捷,可以递归,可以写复杂的方法,如下便是一个递归遍历树的宏,不足之外是只有利用现有的数据进行组合,方法也仅限于velocity提供的几个标签。实现方式有两种,1,直接写在使用的页面上,这样只有当前页可用。2,写在macro.vm里面,这样所有的页面都可以使用。 调用调用方法:#categoryTree($node)和velocity提供的原生的方法一样,括号里面是参数

自定义标签 流程 代码 写java代码,代码需要继承Directive,示例代码如下。 getName接口用来告诉velocity这个函数名是什么,也就是页面上调用这个函数的名称,比如#hellofun(); getType接口用来告诉velocity这个函数类型,可以是行也可以是块函数; reder接口用来输出html代码,当然也可以不输出,如果需要输出,则使用入参的 writer.write("some html");context是当前velocity的容器,可以取调用vm中的变量,比如在 页面上使用#set($name="bwong"),可以通过context.get("name")取出"bwong",node里面可以取出调用这个函数时的入参,比如#hellofun("a"),通过node.jjtGetChild(0).value(context) 取出"a",所以: writer.write("hello " + node.jjtGetChild(0).value(context)); 就可以输出"hello xxx",xxx是调用这个函数时的入参。 render就可以通过使用java的所有工具和类了,实现起来会丰富得多。 配置 配置起来非常简单。在velocity.properties配置文件中加入 userdirective=youpackage.HelloFun,youpackage.OtherUtil 多个工具用”,”隔开。

JSP自定义标签开发+TLD文件元素详解

自定义标签开发整理 从jsp1.1开始就可以在jsp页面中使用自定义标签了,使用自定义标签不但可以实现代码重用,而且可以使jsp代码更简洁。Jsp2.0的标签扩展API中又增加了SimpleTag接口和其实现类SimpleTagSupport。 标签扩展API层次结构: JspTag Tag SimpleTag SimpleTagSupport BodyTag IterationTag BodyTagSupport TagSupport TLD文件元素详解: 每个自定义标签都必须在TLD文件中声明,TLD文件只不过是一个XML 文件。根元素是,它包含一个或者多个标签,该元素用来声明定制标签。元素中只有元素是必须的,其他都是可选的。 TLD文件中的元素 标 签含 义 TLD文件的根元素 此标签库的版本 此标签库依赖的JSP版本。 当在JSP中使用标签时,此标签库首选或者建议的前缀。当然可以完全忽略这个建议 描述信息

图形工具可显示的一个简短名称 图形工具可显示的图标 指定使用该标签库中标签的URI 关于该库的TagLibraryValidator信息指定事件监听器类 定义一个在EL中使用的函数 定义一个标签 元素的子元素标 签含 义 指定针对标签的信息 开发工具用于显示的一个简短名称可被开发工具使用的图标 标签名称 Java标签处理器类的名称。注意这是处理器类的全限定名称,比如 com.xx.tag.TableTag Javax.servlet.jsp.tagext.TagExtraInfo 类的一个可选子类 此标签的主体部分的内容。其值可为scriptless\tagdependent\empty,默认为empty 定义脚本变量信息 使用该标签例子的可选的非正式描述 包含了此标签的一个属性的元数据 的子元素标 签含 义 有关描述的文本信息

相关主题
文本预览
相关文档 最新文档