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

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

ID:4110041

大小:238.50 KB

页数:97页

时间:2017-11-28

jsp自定义标签的开发与应用_第1页
jsp自定义标签的开发与应用_第2页
jsp自定义标签的开发与应用_第3页
jsp自定义标签的开发与应用_第4页
jsp自定义标签的开发与应用_第5页
资源描述:

《jsp自定义标签的开发与应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JSP自定义标签的开发与应用在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库),涉及到了几十个标签。虽然这些标签可以完成比较复杂的工作,但它们仍然无法满足程序中的特殊需求。因此,就需要用户根据自己的需要来定制JSP标签,这种由用户自己实现的JSP标签被称为自定义标签。.1自定义标签基础自定义标签和JSTL中的标签从技术上看没有任何区别,可以将这些标签统称为JSP标签。JSP标签在JSP页面中通过XML语法格式被调用,当JSP引擎将JSP页面翻译成Servlet时,就将这些调用转换成执行相应的Java代码。也就是说,JS

2、P标签实际上就是调用了某些Java代码,只是在JSP页面中以另外一种形式(XML语法格式)表现出来。1.1编写输出随机数的标签开始自定义标签的学习之前,在这一节先来实现一个简单的自定义标签,以使读者做一下热身,同时读者通过本节的例子可以对自定义标签的实现方法和过程有一个感性的认识。【实例1-1】实现输出随机数的标签1.实例说明在本例实现的自定义标签(random标签)的功能是输出一个指定范围的随机整数。random标签有如下几个特征:没有标签体。有两个属性:min和max。其中min属性表示生成随机数的最小值,max属性表示生成随机数的最大值。min

3、属性的默认值是0,max属性的默认值是Integer.MAX_VALUE。生成随机数的范围是min<=random其中“ct”是调用标签时的前缀,通过taglib指定的prefix属性指定。上面的代码的功能是输出一个在1(包括)和100(不包括)之间的随机数。2.编写标签类标签类是自定义标签的核心部分。实现标签类的方法有很多,但最简单的方法是编写一个从javax.servlet.jsp.tagext.TagSupport类继承的Java类,并在该类中

4、覆盖TagSupport类的doStartTag方法。为了读取标签中的属性值,还需要在标签类中为每一个标签属性提供一个相应数据类型的标签类属性以及该属性的setter方法(不需要getter方法)。生成随机数的代码需要放在标签类的doStartTag方法中。该标签类的实现代码如下:packagechapter1;importjava.io.IOException;importjava.util.Random;importjavax.servlet.jsp.JspException;importjavax.servlet.jsp.tagext.TagS

5、upport;publicclassRandomTagextendsTagSupport{//封装random标签的两个属性的JavaBean属性privateintmin=0;privateintmax=Integer.MAX_VALUE;//min属性的setter方法publicvoidsetMin(intmin){this.min=min;}//max属性的setter方法publicvoidsetMax(intmax){this.max=max;}//覆盖TagSupport类的doStartTag方法//当遇到标签(也就是

6、om>)的开始标记时调用该方法@OverridepublicintdoStartTag()throwsJspException{try{Randomrandom=newRandom();//生成一个在min和max之间的随机数intresult=min+random.nextInt(max-min);//将生成的随机数输出到客户端pageContext.getOut().write(String.valueOf(result));}catch(IOExceptione){}//TagSupport类的doStartTag方法默认返回SKIP_BODY

7、,表示忽略自定义标签体returnsuper.doStartTag();}}在RandomTag类的doStartTag方法中使用了一个pageContext变量来获得JspWriter对象(JSP的out内置对象)。pageContext变量是在TagSupport类中定义的一个类变量,该变量通过TagSupport类中的setPageContext方法进行赋值。实际上,setPageContext方法是在Tag接口中定义的,而TagSupport实现了Tag接口的setPageContext方法。Servlet容器在调用doStartTag方法之

8、前,会先调用Tag接口的setPageContext方法来初始化pageContext变量。Tag接口将在1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。