TagSupport.findAncestorWithClass(from, class)
来源:互联网 发布:匡恩网络 加班 编辑:程序博客网 时间:2024/05/17 23:45
具有协作关系的tag
tag通过共享对象来进行协作,JSP技术支持2种方式的对象共享。
第一种方法是使用pageContext对象进行对象的共享(可支持JSP页面和tag处理类之间的共享),如果在一个tag处理类中要调用由另一个tag处理类创建的对象,可调用pageContext.getAttribute(name, scope)方法。
第二种方式的共享是对于tag之间有嵌套关系而言的,外层的tag所创建的对象对于内层的tag来说是可以共用的。这种形式的共享的好处是减少了可能存在的重名冲突。
要访问一个外层tag所创建的对象,内层的tag处理类必须先找到外层tag对象,可用TagSupport的静态方法TagSupport.findAncestorWithClass(from, class)或TagSupport.getParent方法。前者在当不确定此tag是否为嵌套tag对象时使用。
一旦它的父类被找到,它就能访问其所有动态或静态创建的对象。静态创建的对象是父类的成员,而动态创建的对象可能是父类的私有对象。诸如此类的对象可以用tag处理类的setValue方法来保存,用getValue方法来获得。
下例阐述了以上两种共享对象的方法。在这个例子当中,一个查询tag检查一个名为connection的属性名是否在doStartTag中被设置。如果connection属性被设置,tag处理类从pageContext中得到这个connection对象。否则,此tag处理类先找到它的父tag处理类,然后从它的父tag处理类中找到connection对象。
此查询标签在JSP页面中的调用形式可以从以下2种定义中任选一种:
与此同时,在TLD中必须指定connection属性为可选的,定义如下:
- TagSupport.findAncestorWithClass(from, class)
- TagSupport
- Algorithm class from MI
- class from quick
- TagSupport 类别
- Access resources from other class
- Questions from Python Class 1
- cannot convert parameter 1 from 'class A' to 'class A'
- 保证 load class from system class loader first!
- Casting from a base class to a derived class
- cannot convert parameter from 'class CStdioFile' to 'class CStdioFile'
- XML Schema Validator Class (from UABv2.0)
- Calling C++ Unmanaged Class from C#
- Calling C++ Unmanaged Class from C#
- Calling a Java Class from PowerBuilder 10
- UML Class Diagrams from C++ Code
- How to export C++ class from dll
- Could not find class '****', referenced from method #####
- 项目oracle出错之后的处理过程
- Android APK反编译
- win server 2003 不显示,识别移动硬盘
- android的技术层次
- Ubuntu+WIN7双系统下删除系统的问题
- TagSupport.findAncestorWithClass(from, class)
- ListBox 选中用户权限
- Atom N570加量不加价
- Mysql 远程登录及常用命令(一)
- android客户端程序访问服务器端webservice,几篇不错的文章!
- ORACLE 数据库逻辑备份 EXP/IMP
- Adobe 发布 Flash 转换成 Html5 工具 代号Wallaby(沙袋鼠)
- JSF2.0中的页面构建原则
- NO-SQL(非关系型)数据库性能横向比较