开发定制标签库-6
来源:互联网 发布:工行网络金融品牌推广 编辑:程序博客网 时间:2024/05/16 18:52
继承TagSupport和BodyTagSupport类
前面我们依次介绍了Tag,IterationTag,BodyTag接口。实际应用当中,我们并不需要直接实现他们。jsp规范中已经为我们提供了两个类TagSupport和BodyTagSupport,用以对IterationTag和BodyTag的缺省实现。
所以,我们只需要根据需要去继承这两个类,然后重写我们需要定制的方法就可以了。
TagSupport类
该类是IterationTag的缺省实现。除了实现原有方法外,本身还增加了一些有用的其他方法和成员变量。下表列出其中重要的几个:
名称 描述 重写的方法和他们的返回值 void doStartTag() 继承自Tag。返回值SKIP_BODY。 void doAfterBody() 继承自IterationTag。返回值SKIP_BODY。 void doEndTag() 继承自Tag。返回值EVAL_PAGE。 处理嵌套标签的有用的方法 void setParent(Tag) 接受和维护一个父标签的引用。 Tag getParent() 返回父标签的引用。 Tag findAncestorWithClass(Tag,Class) 静态方法。寻找最近的指定类的标签。 标签属性操作 void setValue(String,Object) 设置属性。属性名是字符串,值可以是任何对象。 Object getValue(String) 返回给定属性名的属性的值。 Enumeration getValues() 返回一个所有值的枚举。 void removeValue(String) 删除给定的属性。 受保护的实例变量 PageContext pageContext 一个保存着PageContext对象的变量。
BodyTagSupport类
该类同时继承了TagSupport类,并实现BodyTag接口。除了前表所示方法,该类还提供了一些其它方法便于使用。
名称 描述 重写的方法和他们的返回值 void doStartTag() 继承自Tag。返回值EVAL_BODY_BUFFERED。 void doAfterBody() 继承自IterationTag。返回值SKIP_BODY。 void doEndTag() 继承自Tag。返回值EVAL_PAGE。 用以处理缓冲的方法 void setBodyContent(BodyContent) 接受和维护一个BodyContent对象(缓冲对象)的引用。 BodyContent getBodyContent() 返回BodyContent对象的引用。 JspWriter getPreviousOut() 返回JspWriter对象,BodyContent就是对他的简单包裹。
定制标签和JavaBeans之间的简单区分
虽然两者都是为了提高组件可重用性而设计的。但是一个经常被问起的问题是:如何决定在何时使用其中的一种技术,而不是另一种。
这里有个简单的比较,来帮助你如何决策。
.JavaBeans是jsp页的数据处理器并增加数据管理的逻辑。主要用以存储。定制标签,倾向于对特定请求的处理。
.标签是线程安全的,而bean则不是。Bean的线程安全是由开发人员手工实现的。
.标签了解他所运行的外部环境(pageContext),而bean则不。
.标签属于转换单位的一部分,而bean独立于转换单位之外。
.标签可以访问隐含对象,bean则不能。(这是对上两条的细节描述)
.标签只有页范围(page scope)。他们在一个请求内和一个页面内被创建。虽然他们可以访问所有的范围。beans则可以被创建于各种不同的范围。标签可以创建和维护bean,反之不然。
.标签的API是围绕jsp页的概念开发的,所以标签只能用在jsp页中。而bean却可以被更广泛的组件使用。
.标签不是持久化对象。而bean可以被持久化(序列化),以被后续使用。
相比之下标签较靠近用户,且只能用于jsp页面;而bean较靠近商业逻辑,更适合处理数据处理和维护类工作,且可以被任何组件重用。因此,首选的使用方法是用户的请求由标签负责处理,而需要应用商业逻辑和数据处理的时候,由标签再调用bean来处理。
- 开发定制标签库-6
- 开发定制标签库-1
- 开发定制标签库-2
- 开发定制标签库-3
- 开发定制标签库-4
- 开发定制标签库-5
- 开发定制标签库-1
- 开发定制标签库-2
- 开发定制标签库-3
- JSP定制标签库
- J2EE平台WEB组件开发中如何使用定制标签
- 【iOS开发-28】制造一个UITabBarController标签控制器、定制UITabBarItem文字图片的6种方式以及More讲解
- iOS开发制造一个UITabBarController标签控制器、定制UITabBarItem文字图片的6种方式以及More
- 定制xdoclet 标签
- 使用定制标签-1
- 使用定制标签-2
- 使用定制标签-3
- jsp 定制标签
- 开发定制标签库-2
- 开发定制标签库-3
- 开发定制标签库-4
- 开发定制标签库-5
- 我们的全部希望就在于思想
- 开发定制标签库-6
- 如何在windows系统下安装MySQL?
- Peercast中“流”概念的分析
- 看来又是郁闷的五一
- 使用定制标签-1
- 使用定制标签-2
- 使用定制标签-3
- 布尔逻辑运算符、位运算符与布尔赋值运算符
- About Ajax.net